{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一周作业修正版"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "问题所在\n",
    "1. 数据探索部分，没有分析给出的train dataset，没有查看文件内特征对特征的分析不够。\n",
    "2. 格式很乱\n",
    "3. 对Lasso回归和岭回归掌握的不够。\n",
    "4. 没有对特征的相关性进行分析。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "开发机器学习应用程序的步骤\n",
    "1. 收集数据\n",
    "2. 准备输入数据\n",
    "3. 分析输入数据(数据探索=数据清洗+特征工程)\n",
    "4. 训练算法\n",
    "5. 测试算法\n",
    "6. 使用算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #一、学习任务"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ams_Houes作业要求：\n",
    "对数据做数据探索分析\n",
    "适当的数据清洗（异常值处理和缺失值处理）\n",
    "适当的特征工程\n",
    "用线性回归模型对房价进行预测（最小二乘、岭回归、Lasso），注意正则超参数的调优。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #二、数据收集，参赛数据CSV格式"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #三、准备输入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "#导入工具包\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn import linear_model, discriminant_analysis\n",
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Data Shape: (1460, 81)\n",
      "Test Data Shape: (1459, 80)\n"
     ]
    }
   ],
   "source": [
    "# 读取文件数据\n",
    "train = pd.read_csv(\"Ames_House_train.csv\")\n",
    "test = pd.read_csv(\"Ames_House_test.csv\")\n",
    "# 数据集的大小\n",
    "print(\"Train Data Shape:\", train.shape)\n",
    "print(\"Test Data Shape:\", test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# #四、分析输入数据(数据探索=数据清洗+特征工程)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>...</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "      <th>SalePrice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>65.0</td>\n",
       "      <td>8450</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>208500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>80.0</td>\n",
       "      <td>9600</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>2007</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>181500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>68.0</td>\n",
       "      <td>11250</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>223500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>70</td>\n",
       "      <td>RL</td>\n",
       "      <td>60.0</td>\n",
       "      <td>9550</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2006</td>\n",
       "      <td>WD</td>\n",
       "      <td>Abnorml</td>\n",
       "      <td>140000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>84.0</td>\n",
       "      <td>14260</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>2008</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "      <td>250000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 81 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   Id  MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "0   1          60       RL         65.0     8450   Pave   NaN      Reg   \n",
       "1   2          20       RL         80.0     9600   Pave   NaN      Reg   \n",
       "2   3          60       RL         68.0    11250   Pave   NaN      IR1   \n",
       "3   4          70       RL         60.0     9550   Pave   NaN      IR1   \n",
       "4   5          60       RL         84.0    14260   Pave   NaN      IR1   \n",
       "\n",
       "  LandContour Utilities    ...     PoolArea PoolQC Fence MiscFeature MiscVal  \\\n",
       "0         Lvl    AllPub    ...            0    NaN   NaN         NaN       0   \n",
       "1         Lvl    AllPub    ...            0    NaN   NaN         NaN       0   \n",
       "2         Lvl    AllPub    ...            0    NaN   NaN         NaN       0   \n",
       "3         Lvl    AllPub    ...            0    NaN   NaN         NaN       0   \n",
       "4         Lvl    AllPub    ...            0    NaN   NaN         NaN       0   \n",
       "\n",
       "  MoSold YrSold  SaleType  SaleCondition  SalePrice  \n",
       "0      2   2008        WD         Normal     208500  \n",
       "1      5   2007        WD         Normal     181500  \n",
       "2      9   2008        WD         Normal     223500  \n",
       "3      2   2006        WD        Abnorml     140000  \n",
       "4     12   2008        WD         Normal     250000  \n",
       "\n",
       "[5 rows x 81 columns]"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "##对数据探索分析\n",
    "#查看数据集表字段信息\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "训练数据前五条信息显示，共有81个特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Id</th>\n",
       "      <th>MSSubClass</th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>LotFrontage</th>\n",
       "      <th>LotArea</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>...</th>\n",
       "      <th>ScreenPorch</th>\n",
       "      <th>PoolArea</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>MiscVal</th>\n",
       "      <th>MoSold</th>\n",
       "      <th>YrSold</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1461</td>\n",
       "      <td>20</td>\n",
       "      <td>RH</td>\n",
       "      <td>80.0</td>\n",
       "      <td>11622</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>120</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1462</td>\n",
       "      <td>20</td>\n",
       "      <td>RL</td>\n",
       "      <td>81.0</td>\n",
       "      <td>14267</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Gar2</td>\n",
       "      <td>12500</td>\n",
       "      <td>6</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1463</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>74.0</td>\n",
       "      <td>13830</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1464</td>\n",
       "      <td>60</td>\n",
       "      <td>RL</td>\n",
       "      <td>78.0</td>\n",
       "      <td>9978</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1465</td>\n",
       "      <td>120</td>\n",
       "      <td>RL</td>\n",
       "      <td>43.0</td>\n",
       "      <td>5005</td>\n",
       "      <td>Pave</td>\n",
       "      <td>NaN</td>\n",
       "      <td>IR1</td>\n",
       "      <td>HLS</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>...</td>\n",
       "      <td>144</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2010</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 80 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Id  MSSubClass MSZoning  LotFrontage  LotArea Street Alley LotShape  \\\n",
       "0  1461          20       RH         80.0    11622   Pave   NaN      Reg   \n",
       "1  1462          20       RL         81.0    14267   Pave   NaN      IR1   \n",
       "2  1463          60       RL         74.0    13830   Pave   NaN      IR1   \n",
       "3  1464          60       RL         78.0     9978   Pave   NaN      IR1   \n",
       "4  1465         120       RL         43.0     5005   Pave   NaN      IR1   \n",
       "\n",
       "  LandContour Utilities      ...       ScreenPorch PoolArea PoolQC  Fence  \\\n",
       "0         Lvl    AllPub      ...               120        0    NaN  MnPrv   \n",
       "1         Lvl    AllPub      ...                 0        0    NaN    NaN   \n",
       "2         Lvl    AllPub      ...                 0        0    NaN  MnPrv   \n",
       "3         Lvl    AllPub      ...                 0        0    NaN    NaN   \n",
       "4         HLS    AllPub      ...               144        0    NaN    NaN   \n",
       "\n",
       "  MiscFeature MiscVal MoSold  YrSold  SaleType  SaleCondition  \n",
       "0         NaN       0      6    2010        WD         Normal  \n",
       "1        Gar2   12500      6    2010        WD         Normal  \n",
       "2         NaN       0      3    2010        WD         Normal  \n",
       "3         NaN       0      6    2010        WD         Normal  \n",
       "4         NaN       0      1    2010        WD         Normal  \n",
       "\n",
       "[5 rows x 80 columns]"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "测试数据前五条信息显示，共有81个特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1460 entries, 0 to 1459\n",
      "Data columns (total 81 columns):\n",
      "Id               1460 non-null int64\n",
      "MSSubClass       1460 non-null int64\n",
      "MSZoning         1460 non-null object\n",
      "LotFrontage      1201 non-null float64\n",
      "LotArea          1460 non-null int64\n",
      "Street           1460 non-null object\n",
      "Alley            91 non-null object\n",
      "LotShape         1460 non-null object\n",
      "LandContour      1460 non-null object\n",
      "Utilities        1460 non-null object\n",
      "LotConfig        1460 non-null object\n",
      "LandSlope        1460 non-null object\n",
      "Neighborhood     1460 non-null object\n",
      "Condition1       1460 non-null object\n",
      "Condition2       1460 non-null object\n",
      "BldgType         1460 non-null object\n",
      "HouseStyle       1460 non-null object\n",
      "OverallQual      1460 non-null int64\n",
      "OverallCond      1460 non-null int64\n",
      "YearBuilt        1460 non-null int64\n",
      "YearRemodAdd     1460 non-null int64\n",
      "RoofStyle        1460 non-null object\n",
      "RoofMatl         1460 non-null object\n",
      "Exterior1st      1460 non-null object\n",
      "Exterior2nd      1460 non-null object\n",
      "MasVnrType       1452 non-null object\n",
      "MasVnrArea       1452 non-null float64\n",
      "ExterQual        1460 non-null object\n",
      "ExterCond        1460 non-null object\n",
      "Foundation       1460 non-null object\n",
      "BsmtQual         1423 non-null object\n",
      "BsmtCond         1423 non-null object\n",
      "BsmtExposure     1422 non-null object\n",
      "BsmtFinType1     1423 non-null object\n",
      "BsmtFinSF1       1460 non-null int64\n",
      "BsmtFinType2     1422 non-null object\n",
      "BsmtFinSF2       1460 non-null int64\n",
      "BsmtUnfSF        1460 non-null int64\n",
      "TotalBsmtSF      1460 non-null int64\n",
      "Heating          1460 non-null object\n",
      "HeatingQC        1460 non-null object\n",
      "CentralAir       1460 non-null object\n",
      "Electrical       1459 non-null object\n",
      "1stFlrSF         1460 non-null int64\n",
      "2ndFlrSF         1460 non-null int64\n",
      "LowQualFinSF     1460 non-null int64\n",
      "GrLivArea        1460 non-null int64\n",
      "BsmtFullBath     1460 non-null int64\n",
      "BsmtHalfBath     1460 non-null int64\n",
      "FullBath         1460 non-null int64\n",
      "HalfBath         1460 non-null int64\n",
      "BedroomAbvGr     1460 non-null int64\n",
      "KitchenAbvGr     1460 non-null int64\n",
      "KitchenQual      1460 non-null object\n",
      "TotRmsAbvGrd     1460 non-null int64\n",
      "Functional       1460 non-null object\n",
      "Fireplaces       1460 non-null int64\n",
      "FireplaceQu      770 non-null object\n",
      "GarageType       1379 non-null object\n",
      "GarageYrBlt      1379 non-null float64\n",
      "GarageFinish     1379 non-null object\n",
      "GarageCars       1460 non-null int64\n",
      "GarageArea       1460 non-null int64\n",
      "GarageQual       1379 non-null object\n",
      "GarageCond       1379 non-null object\n",
      "PavedDrive       1460 non-null object\n",
      "WoodDeckSF       1460 non-null int64\n",
      "OpenPorchSF      1460 non-null int64\n",
      "EnclosedPorch    1460 non-null int64\n",
      "3SsnPorch        1460 non-null int64\n",
      "ScreenPorch      1460 non-null int64\n",
      "PoolArea         1460 non-null int64\n",
      "PoolQC           7 non-null object\n",
      "Fence            281 non-null object\n",
      "MiscFeature      54 non-null object\n",
      "MiscVal          1460 non-null int64\n",
      "MoSold           1460 non-null int64\n",
      "YrSold           1460 non-null int64\n",
      "SaleType         1460 non-null object\n",
      "SaleCondition    1460 non-null object\n",
      "SalePrice        1460 non-null int64\n",
      "dtypes: float64(3), int64(35), object(43)\n",
      "memory usage: 924.0+ KB\n"
     ]
    }
   ],
   "source": [
    "#数据的具体分析\n",
    "#训练数据详细信息\n",
    "train.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    数据显示81个特征里一共有1460条，数据中类型数统计 float64(3), int64(35), object(43)，其中有一些未达到1460的统计，表明有空数据。后期需要对数据进行特征处理。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1459 entries, 0 to 1458\n",
      "Data columns (total 80 columns):\n",
      "Id               1459 non-null int64\n",
      "MSSubClass       1459 non-null int64\n",
      "MSZoning         1455 non-null object\n",
      "LotFrontage      1232 non-null float64\n",
      "LotArea          1459 non-null int64\n",
      "Street           1459 non-null object\n",
      "Alley            107 non-null object\n",
      "LotShape         1459 non-null object\n",
      "LandContour      1459 non-null object\n",
      "Utilities        1457 non-null object\n",
      "LotConfig        1459 non-null object\n",
      "LandSlope        1459 non-null object\n",
      "Neighborhood     1459 non-null object\n",
      "Condition1       1459 non-null object\n",
      "Condition2       1459 non-null object\n",
      "BldgType         1459 non-null object\n",
      "HouseStyle       1459 non-null object\n",
      "OverallQual      1459 non-null int64\n",
      "OverallCond      1459 non-null int64\n",
      "YearBuilt        1459 non-null int64\n",
      "YearRemodAdd     1459 non-null int64\n",
      "RoofStyle        1459 non-null object\n",
      "RoofMatl         1459 non-null object\n",
      "Exterior1st      1458 non-null object\n",
      "Exterior2nd      1458 non-null object\n",
      "MasVnrType       1443 non-null object\n",
      "MasVnrArea       1444 non-null float64\n",
      "ExterQual        1459 non-null object\n",
      "ExterCond        1459 non-null object\n",
      "Foundation       1459 non-null object\n",
      "BsmtQual         1415 non-null object\n",
      "BsmtCond         1414 non-null object\n",
      "BsmtExposure     1415 non-null object\n",
      "BsmtFinType1     1417 non-null object\n",
      "BsmtFinSF1       1458 non-null float64\n",
      "BsmtFinType2     1417 non-null object\n",
      "BsmtFinSF2       1458 non-null float64\n",
      "BsmtUnfSF        1458 non-null float64\n",
      "TotalBsmtSF      1458 non-null float64\n",
      "Heating          1459 non-null object\n",
      "HeatingQC        1459 non-null object\n",
      "CentralAir       1459 non-null object\n",
      "Electrical       1459 non-null object\n",
      "1stFlrSF         1459 non-null int64\n",
      "2ndFlrSF         1459 non-null int64\n",
      "LowQualFinSF     1459 non-null int64\n",
      "GrLivArea        1459 non-null int64\n",
      "BsmtFullBath     1457 non-null float64\n",
      "BsmtHalfBath     1457 non-null float64\n",
      "FullBath         1459 non-null int64\n",
      "HalfBath         1459 non-null int64\n",
      "BedroomAbvGr     1459 non-null int64\n",
      "KitchenAbvGr     1459 non-null int64\n",
      "KitchenQual      1458 non-null object\n",
      "TotRmsAbvGrd     1459 non-null int64\n",
      "Functional       1457 non-null object\n",
      "Fireplaces       1459 non-null int64\n",
      "FireplaceQu      729 non-null object\n",
      "GarageType       1383 non-null object\n",
      "GarageYrBlt      1381 non-null float64\n",
      "GarageFinish     1381 non-null object\n",
      "GarageCars       1458 non-null float64\n",
      "GarageArea       1458 non-null float64\n",
      "GarageQual       1381 non-null object\n",
      "GarageCond       1381 non-null object\n",
      "PavedDrive       1459 non-null object\n",
      "WoodDeckSF       1459 non-null int64\n",
      "OpenPorchSF      1459 non-null int64\n",
      "EnclosedPorch    1459 non-null int64\n",
      "3SsnPorch        1459 non-null int64\n",
      "ScreenPorch      1459 non-null int64\n",
      "PoolArea         1459 non-null int64\n",
      "PoolQC           3 non-null object\n",
      "Fence            290 non-null object\n",
      "MiscFeature      51 non-null object\n",
      "MiscVal          1459 non-null int64\n",
      "MoSold           1459 non-null int64\n",
      "YrSold           1459 non-null int64\n",
      "SaleType         1458 non-null object\n",
      "SaleCondition    1459 non-null object\n",
      "dtypes: float64(11), int64(26), object(43)\n",
      "memory usage: 912.0+ KB\n"
     ]
    }
   ],
   "source": [
    "#测试数据详细信息\n",
    "test.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "    数据显示80个特征里一共有1459条，数据中类型数统计 float64(11), int64(26), object(43)，其中有一些未达到1460的统计，表明有空数据。后期需要对数据进行特征处理。与训练数据不同的是缺少SalePrice，目标特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count      1460.000000\n",
       "mean     180921.195890\n",
       "std       79442.502883\n",
       "min       34900.000000\n",
       "25%      129975.000000\n",
       "50%      163000.000000\n",
       "75%      214000.000000\n",
       "max      755000.000000\n",
       "Name: SalePrice, dtype: float64"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#SalesPrice：房屋售价分析\n",
    "#训练数据中目标特征SalePrice的更多信息\n",
    "train.SalePrice.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ns7PTPpf/duLECc2ePVsFBQVkY8mErnun41fw9PT0xD6c1e12q7e3V9JIFl6vN7afx+NRKBQalVF+\nfn7c7df3v9U5UlFnZ6fOnz+v+++/n2w0ckvs9ddfV0dHh5555hnNmjVLWVlZysjIkPT/5yjdfP1k\nZGQoKytLfX19CoVCmj9/fuxn3nhMvOutr68v4TlSxcGDB/XSSy/pypUrknTLMadTLtft2LFDkvT0\n00/L5/Ol/bXU2dmp3Nxc7du3T999952Ki4u1Zs2atM/lv33xxRd67LHHJPG3yZYJLVkmya/gSQe3\nk4XjOHH3v9tcvXpVu3fv1po1a5SVlZVwv3TKZsqUKdq5c6cGBga0a9cuXbx4MeG+iXJJNP+79Xo7\nevSo8vLyVFxcrFOnTo25f7rkct1bb72l/Px89fT06O23377l15Oly7UUjUZ1/vx5rV27VvPnz1d9\nfb0aGhoS7p8uudwoEono6NGjWr169S33S8dsxtOE3i5M9it4JpO8vDyFw2FJUjgcVm5urqSRLLq6\numL7Xc8iPz//poxCoZDcbnfc7PLz8295jlQSiUS0e/duPfHEE3r44Yclkc2NsrOztXDhQp05c0aD\ng4OKRqOSRuZ4fS43zjMajWpwcFA5OTmj5n/9mETX2/Tp0xOeIxWcPn1aLS0t2rBhg2pra3Xy5Ekd\nPHgw7XO57sbndnl5uc6ePZv215LH45HH44mtXFZUVOj8+fNpn8uN2traNG/ePM2YMUMS//7aMqEl\nKx2/gqesrExNTU2SpKamJpWXl8e2Nzc3yxij9vZ2ZWVlye12a9GiRfrqq6/U39+v/v5+ffXVV1q0\naJHcbrfuvfdetbe3yxij5ubmWHaJzpEqjDHav3+/ioqK9Nxzz8W2p3s2vb29GhgYkDTyTsMTJ06o\nqKhIJSUlOnLkiKSRd/Ncn8uSJUt0+PBhSdKRI0dUUlIix3FUVlamL7/8UteuXVNnZ6d++OEH3X//\n/QmvN8dxEp4jFaxevVr79+/X3r17tWnTJj3wwAOqrq5O+1ykkdXg67dQr169quPHj2vu3Llpfy3N\nmDFDHo9Hly5dkjTy2qM5c+akfS43uvFWocS/v7ZM+IeRtra26m9/+1vsK3ief/75iRzOuKqtrdXX\nX3+tvr4+5eXladWqVSovL5ff71dXV5e8Xq+2bNkSe5vs+++/r6+++kqZmZmqqqrSfffdJ0lqbGzU\noUOHJI28TfbJJ5+UJH377bfat2+fhoaGtGjRIq1du1aO46ivry/uOVLFv//9b23btk1z586NLTu/\n8MILmj9/flpn891332nv3r0aHh6WMUaPPPKIfvvb3+rHH38c9TEC99xzj4aGhrRnzx6dP39eOTk5\n2rRpk2bNmiVJ+vjjj/Wvf/11zShSAAAApUlEQVRLU6ZM0Zo1a7R48WJJia+3ROdINadOndInn3yi\nrVu3kotGxrdr1y5JI6t2jz/+uJ5//vmEz/N0uZYk6T//+Y/279+vSCSimTNnqqqqSsaYtM9Fkn7+\n+We98sor2rNnT+ylGjxn7JjwkgUAADAZ8YnvAAAAFlCyAAAALKBkAQAAWEDJAgAAsICSBQAAYAEl\nCwAAwAJKFgAAgAWULAAAAAv+DxUphKTYvyzLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbce09b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.style.use(style=\"ggplot\")\n",
    "plt.rcParams[\"figure.figsize\"] = (10, 6)\n",
    "# 房屋出售价格直方图\n",
    "plt.hist(train.SalePrice, color=\"blue\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Skew is: 0.121335062205\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n7hw5ciR//vOfM3369GpvBgCgrlX95cLGxsZ8+9vfzl133ZWjR4/muuuuy6c+9alqbwYAoK4V+Zys\nK664IldccUWJ/7qInp6eWi9hwjDL6jDH6jHL6jDH6jHL6jgZ5thQGe1MdQAAPhZfqwMAUECRlwvr\nxQMPPJDNmzentbU1K1asSJIMDQ2lt7c3b775Zs4555zcfvvtaWlpOea2X//613PBBRckSTo7O3PH\nHXec0LXXm9Fm+Ze//CW//vWvs2PHjvzkJz/JxRdfPOpt6/Frlmrl48zxtttuy5lnnpnTTjstjY2N\ndfHO3FoabZaPPfZYnnnmmTQ1NWXy5MlZsGBBJk2adMxt7ZP/8XHmaJ98v9Fm+eSTT2bTpk1paGhI\na2trFixYkPb29mNuu27dujz11FNJkhtvvDGzZ88+kUuvKx9njnX33F2ZwLZt21Z5+eWXK0uWLBm5\n7LHHHqusXr26UqlUKqtXr6489thjo972lltuOSFrPFmMNstXX321smPHjsqyZcsqL7300qi3Gx4e\nrnznO9+p7Nq1q3L48OHKd7/73cqrr756opZdd453jpVKpbJgwYLKvn37TsQyTwqjzXLr1q2VI0eO\nVCqVd//WR/v7tk++3/HOsVKxT/6v0WZ58ODBkZ9/+9vfVh566KFjbnfgwIHKbbfdVjlw4MD7fj5V\nHe8cK5X6e+6e0C8XTpky5ZijVP39/Zk1a1aSZNasWb7yZ5xGm+X5558/5ofI+pql9zveOXKs0Wb5\n+c9/Po2NjUmSSy65ZNRvm7BPvt/xzpFjjTbL5ubmkZ///e9/j/rh3Fu3bs2ll16alpaWtLS05NJL\nL83WrVuLr7deHe8c69GEfrlwNPv27Rv5cNS2trbs379/1OsdPnw4S5cuTWNjY772ta/lC1/4wolc\n5oQx2tcsvfjiizVc0cntrrvuSpL83//930nxzppaWrt2ba666qpjLrdPfjQfNMf32CfH9qtf/Sob\nNmxIc3Nzli1bdsy//+8+2d7eLmxHMdYck/p77j7lImu8HnjggbS3t+eNN97ID3/4w1xwwQU577zz\nar2sk05lnF+zxNh+9KMfpb29Pfv27cuPf/zjdHV1ZcqUKbVeVl166qmn0tjYmGuuueaYf7NPjt+H\nzTGxT47XTTfdlJtuuimrV6/O73//+8ybN2/M29gnjzWeOdbbc/eEfrlwNK2trRkcHEySDA4O5uyz\nzx71eu+dUDd58uRMmTIl//znP0/UEieU8X7NEmN7b59sbW3NjBkz8tJLL9V4RfVp3bp1eeaZZ7Jo\n0aJRn6jsk+Mz1hwT++RHdfXVV+evf/3rMZe3t7e/b58cGBiwT36ID5pjUn/P3adcZE2fPj3r169P\nkqxfvz4zZsw45jpDQ0M5fPhwkmT//v3Zvn17zj///BO6zonC1yxVx9tvv5233npr5Oe//e1vI++g\n4T+2bt2a3/zmN7njjjtyxhlnjHod++TYxjNH++T4vP766yM/b9q0adTzLy+77LI8++yzGRoaytDQ\nUJ599tlcdtllJ3KZdW88c6zH5+4J/WGkK1euzPPPP58DBw6ktbU18+bNy4wZM9Lb25s9e/aks7Mz\nS5YsSUtLS15++eX88Y9/zK233prt27fnZz/7WU477bQcPXo0c+fOzZw5c2p9d2pqtFm2tLTkF7/4\nRfbv359Jkybl05/+dH7wgx9kYGAgDz30UL7//e8nSTZv3pxf/vKXI1+zdOONN9b43tTO8c7xjTfe\nyD333JMkGR4eztVXX31KzzEZfZarV6/OkSNHRk6a/exnP5v58+fbJz/E8c7RPnms0Wa5efPmvP76\n62loaEhnZ2fmz5+f9vb29z3nJO+e+7Z69eok736Ew3XXXVfLu1JTxzvHenzuntCRBQBQK6fcy4UA\nACeCyAIAKEBkAQAUILIAAAoQWQAABYgsAIACRBYAQAEiCwCggP8HANOSfHw613EAAAAASUVORK5C\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbca3b70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#正态分布该数据\n",
    "target= np.log(train.SalePrice)\n",
    "print(\"Skew is:\", target.skew())\n",
    "plt.hist(target, color=\"blue\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SalePrice        1.000000\n",
      "OverallQual      0.790982\n",
      "GrLivArea        0.708624\n",
      "GarageCars       0.640409\n",
      "GarageArea       0.623431\n",
      "TotalBsmtSF      0.613581\n",
      "1stFlrSF         0.605852\n",
      "FullBath         0.560664\n",
      "TotRmsAbvGrd     0.533723\n",
      "YearBuilt        0.522897\n",
      "YearRemodAdd     0.507101\n",
      "GarageYrBlt      0.486362\n",
      "MasVnrArea       0.477493\n",
      "Fireplaces       0.466929\n",
      "BsmtFinSF1       0.386420\n",
      "LotFrontage      0.351799\n",
      "WoodDeckSF       0.324413\n",
      "2ndFlrSF         0.319334\n",
      "OpenPorchSF      0.315856\n",
      "HalfBath         0.284108\n",
      "LotArea          0.263843\n",
      "BsmtFullBath     0.227122\n",
      "BsmtUnfSF        0.214479\n",
      "BedroomAbvGr     0.168213\n",
      "ScreenPorch      0.111447\n",
      "PoolArea         0.092404\n",
      "MoSold           0.046432\n",
      "3SsnPorch        0.044584\n",
      "BsmtFinSF2      -0.011378\n",
      "BsmtHalfBath    -0.016844\n",
      "MiscVal         -0.021190\n",
      "Id              -0.021917\n",
      "LowQualFinSF    -0.025606\n",
      "YrSold          -0.028923\n",
      "OverallCond     -0.077856\n",
      "MSSubClass      -0.084284\n",
      "EnclosedPorch   -0.128578\n",
      "KitchenAbvGr    -0.135907\n",
      "Name: SalePrice, dtype: float64 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "#80个特征与SalePrice正相关\n",
    "numeric_features = train.select_dtypes(include=[np.number])\n",
    "numeric_features.dtypes\n",
    "corr = numeric_features.corr()\n",
    "print(corr['SalePrice'].sort_values(ascending=False), '\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据与SalePrice的相关性，选择数据对其进行数据清理和分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OverallQual的唯一值: [ 7  6  8  5  9  4 10  3  1  2]\n"
     ]
    }
   ],
   "source": [
    "#整体材质和完成品质(OverallQual)和售价的关系(SalePrice)\n",
    "train.OverallQual.unique()\n",
    "print(\"OverallQual的唯一值:\",train.OverallQual.unique())\n",
    "# 销售价格的中位数随着数量的增加而增加\n",
    "quality_pivot = train.pivot_table(index='OverallQual', values='SalePrice', aggfunc=np.median)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngdNbW5+O5vvvJDD6a9vWvTrduqfvzTff1OHDhzVlyhTXDFr79u31ySefuDVISUmJTp48Ken0k7w7\nd+5UfHy8evXqpc2bN0uS1q9fr8TERElS3759tX79eknS5s2b1atXL1ksFiUmJmrTpk2qrq5WQUGB\njh49qq5du6pLly46evSoCgoKVFNTo02bNikxMVEWi6XOMQAAAMzErZm+LVu2KCMjQ+Hh4a7Q15D7\n44qLi7Vw4UI5nU4ZhqEBAwaob9++ateunebNm6cVK1aoU6dOGjZsmCRp2LBhWrBggSZPnqyoqChN\nnTpV0umgOWDAAE2fPl0hISG65557FBJyOrfefffdevbZZ+V0OnXttdeqffv2kqQ777zzvGMAAACY\niVuhz2q1yul0nrWtpKRE0dHRbg3ym9/8Ri+88MI521u1aqXnnnvunO1hYWGaPn36ec81atQojRo1\n6pztV111la666iq3xwAAADATty7vJiUlacGCBSooKJB0euZu6dKlGjhwoFeLAwAAgGe4FfrGjh2r\nuLg4PfTQQyovL9eUKVMUExOj0aNHe7s+AAAAeIDbl3dTU1OVmprquqzb0CVRAAAA4D9uzfRlZ2fr\n+++/lyQ1b95cFotF3333nTZs2ODV4gAAAOAZboW+995776w3Xkin1xBasWKFV4oCAACAZ7kV+ioq\nKhQREXHWtoiICNfaewAAALi4uRX62rVr51rg+IwtW7aoXbt2XikKAAAAnuXWgxx33nmnnnvuOW3a\ntEmtW7fWsWPHtHPnTs2cOdPb9QEAAMAD3Ap9l112mebMmaMvvvhChYWF6tq1q1JTU4P+xccAAADB\nwq3QJ51+cGPkyJHerAUAAABeUmfoW7Jkie6//35J0vz58+tcl++vf/2rdyoDAACAx9QZ+uLi4lw/\nt27d2ifFAAAAwDvqDH233nqrJMnpdMput2vQoEEKCwvzWWEAAADwnF9dsiUkJERvvfUWgQ8AACCA\nubVOX9++fZWbm+vtWgAAAOAlbj29W11drblz56p79+6y2+1nPdTBgxwAAAAXP7dCX/v27dW+fXtv\n1wIAAAAvcSv03Xbbbd6uAwCAoBMf37YRRzf82CNH8hsxHoJdvaEvPz9fixYt0uHDh9WpUydNmjTp\nrKVcAAAAEBjqfZDjjTfeUFxcnB588EHZbDYtX77cR2UBAADAk+qd6Tt06JBeeeUVhYWFqWfPnnrw\nwQd9VRcAAAA8qN6ZvpqaGtf6fOHh4aqqqvJJUQAAAPCsemf6qqur9d5777k+V1VVnfVZkm6//Xbv\nVAYAAACPqTf0DRo0SEVFRa7P11xzzVmfAQAAEBjqDX2TJk3yVR0AAADwIrdewwYAAIDARugDAAAw\nAUIfAACACRD6AAAATMCtd+9K0o4dO7Rx40adOHFCM2bM0LfffquKigpdfvnl3qwPAAAAHuDWTN+/\n//1vvfbaa2rTpo327NkjSQoLC9OKFSu8WhwAAAA8w63Qt3btWv3tb3/TyJEjFRJy+pD4+Hjl5+d7\ntTgAAAB4hluhr6KiQrGxsWdtq6mpkdXq9tVhAAAA+JFboa9Hjx5atWrVWdv+/e9/q1evXl4pCgAA\nAJ7lVui7++67tWXLFj3wwAOqrKzUgw8+qM2bN+vPf/6zt+sDAACAB7h1fTYmJkbPPfecDhw4oMLC\nQtntdnXt2tV1fx8AAAAubm7flGexWNStWzd169bNm/UAAADAC+oMfRMnTnTrBK+88orHigEAAIB3\n1Bn6Jk+e7Ms6AAAA4EV1hr6ePXv6sg4AAAB4kdv39H333Xfas2ePSktLZRiGa/vtt9/ulcIAAADg\nOW6FvszMTL355pvq3bu38vLylJCQoB07digxMdHb9QEAAMAD3Fpz5aOPPtKsWbP08MMPKywsTA8/\n/LCmT5+u0NBQb9cHAAAAD3Ar9JWUlKhHjx6STi/d4nQ61adPH3399ddeLQ4AAACe4dblXZvNpoKC\nAsXFxalNmzbKzc1VdHQ0794FAAAIEG6ltltuuUVHjhxRXFycRo8erblz56qmpkbjx4/3dn0AAADw\nALdCX3JysuvnPn36aNmyZaqpqVF4eLi36gIAAIAHNfjluTt27NC6dev0ww8/eKMeAAAAeEG9oW/e\nvHn67LPPXJ9XrVqltLQ0bdy4UU8//bQ2bNjg9QIBAADQePVe3t27d6/rvj2n06nVq1drypQpSkpK\n0rZt2/SPf/xDQ4YM8UmhAAAAuHD1zvSVl5erRYsWkk6/kaO6ulpXX321JCkhIUHHjx/3foUAAABo\ntHpDX3R0tAoKCiRJ33zzjbp3766QkNOHnDp1yvUzAAAALm71Xt4dNmyY0tLSdOWVV2rDhg1nLdGy\ne/duxcfHe71AAAAANF69oW/UqFGy2Ww6ePCgUlNTNWjQINfvSkpKdPPNN3u9QAAAADTer67Tl5yc\nfNY6fb/cDgAAgMDATXkAAAAmQOgDAAAwAUIfAACACRD6AAAATOBXH+SQpLKyMn388cf6/vvvVVlZ\nedbvnnrqKa8UBgAAAM9xK/S9/PLLqqmp0YABAxQWFubtmgAAAOBhboW+ffv26fXXX1eTJk28XQ8A\nAAC8wK17+jp06KCioiJv1wIAAAAvcWum7/LLL9fs2bOVnJysSy655KzfDRs27FePLyws1MKFC/Xz\nzz/LYrEoJSVFN954o8rKypSenq7jx4+rZcuWmjZtmqKiomQYhpYtW6Zt27apadOmmjRpkjp37ixJ\nWr9+vT744ANJp98YcmaR6IMHD2rhwoWqqqpSnz59NH78eFksljrHAAAAMBO3Qt///d//yW63a+fO\nnef8zp3QFxoaqnHjxqlz586qqKjQjBkz1Lt3b61fv15XXHGFRo4cqVWrVmnVqlW66667tG3bNh07\ndkwZGRnav3+/Xn/9dc2ePVtlZWVauXKl0tLSJEkzZsxQYmKioqKi9Nprr+n+++9Xt27d9Nxzzykv\nL099+vTRqlWrzjsGAACAmbgV+p544olGDRITE6OYmBhJUrNmzRQfHy+Hw6GcnBw9+eSTkqShQ4fq\nySef1F133aXc3FwNGTJEFotF3bt318mTJ1VcXKxdu3apd+/erpm63r17Ky8vT7169VJFRYW6d+8u\nSRoyZIhycnLUp0+fOscAAAAwE7dC3y8ZhiHDMFyfQ0IattRfQUGBDh06pK5du+rEiROuMBgTE6OS\nkhJJksPhUGxsrOsYu90uh8Mhh8Mhu93u2m6z2c67/cz+kuocAwAAwEzcCn0Oh0NLly7Vnj17dPLk\nybN+995777k9WGVlpebMmaPU1FRFRETUud8vQ+UZFovlvPtaLJbz7t9QmZmZyszMlCSlpaWdFTq9\nzWq1+nQ8Xwvm/oK5N4n+Al2g9Ne0aWOWAmvboL1PnapqxFgXv0D4824M+msct0Lfq6++qqZNm+rx\nxx/XE088oaeeekrvv/+++vTp4/ZANTU1mjNnjgYPHqz+/ftLklq0aKHi4mLFxMSouLhYzZs3l3R6\npq6wsNB1bFFRkWJiYmSz2bR7927XdofDoZ49e8put5/1dHFRUZFsNlu9Y/ynlJQUpaSkuD7/cnxv\ni42N9el4vhbM/QVzbxL9BbrA6a9hwa0xfP99+K43if48LzD6a9vWvTrduja7b98+TZw4UR07dpTF\n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\nf5fVKOf7uzwnJ0dDhw6VJA0dOvSief0rl3fhdQUFBTp06JC6du3q71I8yul06pFHHtGxY8d0/fXX\nq1u3bv4uyWOWL1+uu+66SxUVFf4uxaueffZZSdJ1112nlJQUP1fjGQUFBWrevLkWLVqk77//Xp07\nd1ZqaqrrHynBZOPGjbrmmmv8XYZH2Ww23XzzzZo4caLCwsJ05ZVX6sorr/R3WR7Tvn17rVixQqWl\npQoLC9O2bdvUpUsXf5flcSdOnHCF9ZiYGJWUlPi5otOY6YNXVVZWas6cOUpNTVVERIS/y/GokJAQ\nvfjii1q8eLG+/fZb/fDDD/4uySO+/vprtWjR4qJcbsCTnn76aT3//POaNWuW/ud//ke7d+/2d0ke\nUVtbq0OHDum3v/2tXnjhBTVt2lSrVq3yd1keV1NTo6+//lpJSUn+LsWjysrKlJOTo4ULF2rJkiWq\nrKzUhg0b/F2Wx7Rr10633HKLnnnmGc2ePVu/+c1vFBJCFPEVZvrgNTU1NZozZ44GDx6s/v37+7sc\nr4mMjFTPnj2Vl5enDh06+LucRtu7d69yc3O1bds2VVVVqaKiQhkZGZoyZYq/S/Mom80mSWrRooX6\n9eunAwcOqGfPnn6uqvHsdrvsdrtr5jkpKSkoQ9+2bdvUqVMnXXLJJf4uxaN27typuLg4NW/eXJLU\nv39/7du3T0OGDPFzZZ4zbNgw1+0H//jHP2S32/1ckee1aNFCxcXFiomJUXFxsevP09+I1/AKwzC0\nePFixcfH66abbvJ3OR5XUlKikydPSjr9JO/OnTsVHx/v56o8Y+zYsVq8eLEWLlyoqVOn6vLLLw+6\nwFdZWem6dF1ZWakdO3YERWCXpEsuuUR2u135+fmSToeIdu3a+bkqzwvGS7uSFBsbq/379+vUqVMy\nDCOo/t9yxokTJySdXuVhy5YtQfnnmJiYqOzsbElSdna2+vXr5+eKTmOmz4/mzZun3bt3q7S0VBMm\nTNCYMWNc//oJdHv37tWGDRvUoUMHPfzww5KkO+64Q1dddZWfK/OM4uJiLVy4UE6nU4ZhaMCAAerb\nt6+/y4KbTpw4oZdeeknS6cuhgwYNUkJCgp+r8py7775bGRkZqqmpUVxcnCZNmuTvkjzq1KlT2rFj\nh+677z5/l+Jx3bp1U1JSkh555BGFhoaqY8eOQXO/6Rlz5sxRaWmprFar7rnnnoB/oPF8f5ePHDlS\n6enpysrKUmxsrKZPn+7vMiXxRg4AAABT4PIuAACACRD6AAAATIDQBwAAYAKEPgAAABMg9AEAAJgA\noQ8APOSf//ynMjIyJJ1+HdqYMWNUW1vrl1rWr1+vv/3tb67P48aN008//eSXWgBcHFinD0BAW79+\nvVavXq2ffvpJzZo109VXX62xY8cqMjLS36X9qv+svX///ho7dqxXXln49ttvu35euHCh7Ha7/vjH\nP3p8HAAXL2b6AASs1atX691339W4ceO0fPlyPfvssyosLNQzzzyjmpoaj47l6Rm789V+/Phxr9QO\nABKhD0CAKi8v1z//+U+NHz9eCQkJslqtiouL07Rp03T8+HFt2LBBDodDd955p8rKylzHHTp0SPfc\nc48rWGVlZWnatGkaP368K3idMWbMGK1bt05TpkxxvYpu2bJlmjhxov785z/rkUce0Z49ezxae0FB\ngb744gtJp2fkVqxY4Tpu165dmjBhguvzqlWrNHnyZP3pT3/StGnTtGXLljrHHDNmjI4dO6bMzEx9\n8cUX+uijjzRu3DilpaXp448/dr2h5Iw33nhDy5cvb3BvAC5ehD4AAWnfvn2qrq5W//79z9oeHh6u\nhIQE7dixQzabTd27d9fmzZtdv//iiy/Uv39/Wa1WbdmyRR9++KEeeughvf7667rsssv08ssvn3W+\nnJwczZ49W+np6ZKkLl266IUXXtAbb7yhQYMGae7cuaqqqvJ47e5o1aqVnnrqKS1fvly33Xab5s+f\nr+Li4nqPSUlJ0aBBg3TLLbfo7bff1owZMzR48GBt377d9T7p2tpabdq0SUOGDGlQXwAuboQ+AAGp\npKRE0dHRCg0NPed3MTExKi0tlSQNGjRIGzdulCQZhqFNmzZp0KBBkqTMzEzdeuutateunUJDQ3Xr\nrbfqu+++O2u279Zbb1VUVJTCwsIkSUOGDHGNe/PNN6umpkb5+fkerb2kpMSt8wwYMEA2m00hISEa\nOHCgWrdurQMHDjSoljNj9ujRQ19++aUkKS8vT9HR0ercuXODzwXg4sWDHAACUvPmzVVaWqra2tpz\nwlNxcbGio6MlSUlJSXrjjTfkcDh07NgxSVKPHj0kScePH9eyZcv01ltvuY41DEMOh0MtW7aUJNnt\n9rPOvXr1amVlZcnhcMhisaiiosIVMD1Ve/Pmzd06T3Z2ttasWeMKqZWVlQ2u5YyhQ4fqk08+UUpK\niv73f/+XWT4gCBH6AASk7t27q0mTJvrqq680cOBA1/bKykrl5eXpjjvukCRFRkbqyiuv1Jdffqkj\nR47ommuukcVikSTFxsZq1KhRGjx4cJ3jnNlXkvbs2aOPPvpIjz/+uNq1a6eQkBCNHz9ehmF4tPYz\nT9U2bdpUp06dcv3+559/dv18/PhxLVmyRI8//ri6d++ukJAQPfzww27V8suezujXr59ef/11/fDD\nD/r666911113NagnABc/Lu8CCEgREREaPXq0li1bpry8PNXU1KigoEDp6emy2+1nzVQNGjRIGzZs\n0FdffeW6tCtJ1113nVatWqXDhw9LOv2AxZlLnOdTUVGh0NBQNW/eXE6nUytXrlR5eblHa4+OjnbV\n2LFjR23btk1lZWX6+eeftXbtWtc5Tp06JYvF4poV/Pzzz119/JoWLVqcs2ZfWFiY+vfvr4yMDHXt\n2lWxsbEN7gvAxY2ZPgAB65ZbblF0dLTefvttHTt2TBEREerXr58mT56sJk2auPZLTEzU4sWLFRsb\nq44dO7q2X3311aqsrNS8efNUWFioiIgIXXHFFRowYMB5x0tISFBCQoIefPBBNW3aVCNGjLjgcPSf\ntVdXV6tnz57629/+pvDwcEmn7x/cuXOnHnjgAbVs2VLJyclas2aNJKldu3a66aab9OijjyokJERD\nhgzRpZde6tbYw4YN09y5c5WamqqePXvq//2//ydJSk5OVlZWliZOnHhBPQG4uFmMhl6XAAB4XFZW\nlt5//309/fTTfptlKyws1NSpU/Xqq696ZYFoAP7FTB8AXASGDRsmq9WqvXv3+iX0OZ1OrVmzRgMH\nDiTwAUGKmT4AMLnKykr95S9/UcuWLTVr1izu5wOCFKEPAADABHh6FwAAwAQIfQAAACZA6AMAADAB\nQh8AAIAJEPoAAABMgNAHAABgAv8f1x4jPdQr5XEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbcf2860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（1）OverallQual (0.790982)  与售价相关性最大的特征\n",
    "#整体材质和完成品质(OverallQual)和售价的关系(SalePrice)直方图\n",
    "quality_pivot.plot(kind='bar', color='blue')\n",
    "plt.xlabel('Overall Quality')\n",
    "plt.ylabel('Median Sale Price')\n",
    "plt.xticks(rotation=0)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111ccf136a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（2）#地上居住面积(GrLiveArea)和房屋售价的关系(SalePrice)\n",
    "plt.scatter(x=train['GrLivArea'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nCv385z/X0aNHfd5vpn5nxK0dvirqU3+FBHJMtAqkbRdeeKEKCwv1+OOP67zzzlNhYWG40ouoWO73\n9px55pkqKirSvHnzdOWVV2revHmRTqnTNTQ0aP78+ZowYYKSkpK87rNC37fV/ljuf7vdrnnz5umZ\nZ57R7t279dVXX3ndH8t9317bY/WzfsuWLUpJSWnzOlUz9TuFWzvS09NVVVXluV1VVdXqV/XJxzQ3\nN6u+vj5mTjMF0v7u3bsrPj5ekpSbm6s9e/aENcdISU9PV2Vlpee2r/cmViUlJXlOqwwZMkTNzc2q\nrq6OcFadp6mpSfPnz9ell16q73znO63uj/W+b6/9sd7/ktStWzfl5ORo27ZtXvFY/rw/wV/bY/Wz\nfseOHdq8ebPuuOMOLViwQB9//LGefPJJr2PM1O8Ubu3Izs7WgQMHVF5erqamJm3cuFFDhw71OubC\nCy/UunXrJEnvvfee/uu//itmfoEF0v6Tr+3ZvHmz+vTpE+40I2Lo0KF6++235Xa79dlnnykpKSmm\nvrzbcvjwYc8v0F27dskwDHXv3j3CWXUOt9utZ555RqeffrquueYan8fEct8H0v5Y7f/q6mrV1dVJ\napll+dFHH+n000/3OiZWP+8DaXusftb/7Gc/0zPPPKPCwkJNmzZN3/72t3XXXXd5HWOmfmcB3gCU\nlJTo+eefl2EYGjVqlK677jr96U9/UnZ2toYOHarjx49r0aJF+vzzz5WcnKxp06apV69ekU6707TX\n/j/+8Y/avHmz4uLilJycrEmTJrX6Hz4aLViwQKWlpaqpqVFKSory8vLU1NQkSfr+978vt9utZcuW\n6YMPPlBCQoJuv/12ZWdnRzjrztFe29944w39/e9/V1xcnBISEnTTTTdp4MCBEc66c3z66aeaM2eO\n+vXr5/lgvvHGGz0jbLHe94G0P1b7/8svv1RhYaEMw5Db7dYll1yi66+/3hKf94G0PVY/60/2ySef\n6LXXXtPMmTNN2+8UbgAAAFGCU6UAAABRgsINAAAgSlC4AQAARAkKNwAAgChB4QYAABAlKNyAIBUW\nFurll1+OdBohl5eXp7Kysg49trq6Wr/+9a91/PjxTs6q861bt06/+93vJEmNjY2aNm2ajhw54vf4\nP//5z57FOSsrK/WLX/xChmG0+zpLlizRK6+80jlJ4z/idrtVVFSkiRMnatasWZFOBwgKe5UCfjzw\nwAP68ssvtWTJEs9q4QjMq6++qlGjRikhISHSqQQlPj5eo0aNUnFxsW666aZ2j3c6nVq5cmVAzz15\n8uT/ND10kk8//VQffvihnn76ac8OEB315z//WWVlZa0WbAVChRE3wIfy8nJt375dUssK4dHM7XYH\nNCLUWRobG7V+/XpdeumlHXp8c3NzJ2cUnBEjRmj9+vVqbGyMaB6hEs6/hXDoyN93RUWFMjIy/uOi\nDYgERtwAH95++22dffbZOuuss7R+/XpdcsklXvdXV1froYce0s6dO3XmmWdq6tSpysjIkNSy792K\nFSu0f/9+ZWVlacKECRo4cKDeeecdvfbaa8rPz/c8z9/+9jd98sknmjFjhhobG/XSSy/p3XffVVNT\nk4YNG6YJEyb4HLUyDEMvvvii1q9fr8TERF177bVavny5XnrpJcXFxemBBx7QwIEDVVpaqj179mj+\n/Pnavn27/vrXv6qqqko9evTQmDFjdMUVV3ie869//av+9re/yWazady4cV6vF0xuO3fuVFJSktLT\n0z2x8vJyFRYW6vPPP9eAAQPUu3dv1dfX66677lJ5ebmmTp2qKVOmaPXq1TrttNP04IMPavPmzfrj\nH/8ol8ulM844Q5MmTfJssZOXl6cnn3xSmZmZklpOX6enp+unP/2pPvnkEz311FO6+uqrVVxcLLvd\nrhtvvFGjRo2SJNXU1KioqEilpaXKysrS+eef75V/enq6unXrpp07dyonJ6fNv5MTub/00kt67733\n2uzfYHMsLCzU9u3bPTl+8skneuihh3zm8cQTT2j79u06fvy4573q27ev571JSEhQZWWlSktL9Zvf\n/Ebnnnuu3/6sra3VokWLtHPnThmGoYEDB+q2227z6s+Tvfrqq/rf//1fHT16VKmpqZo0aZLOO+88\nHT9+XM8++6w2b96snj17atSoUXr99df1zDPPtNuH7eXg6++7R48eev7557V161bZbDaNGjVKeXl5\nstu9xyfeeustLVu2TE1NTfrFL36ha6+9Vnl5edqyZYtefvllVVRUqE+fPrrtttv0rW99S5Lkcrm0\nfPlybd++XYmJibr66qt11VVXadu2bVqzZo0kadOmTcrMzNS8efPa/JsB/lOMuAE+rF+/XiNGjNCl\nl16qDz74QIcPH/a6f8OGDfrJT36iZcuW6YwzzvBc81RbW6v8/Hz98Ic/1PLly3X11VcrPz9fNTU1\nGjp0qPbv368DBw54nuedd97RiBEjJEmrVq3SgQMHNG/ePD355JNyuVx+r4lau3attm7dqscee0yP\nPvqoNm3a1OqYt99+W5MnT9YLL7wgp9OplJQUzZgxQ88//7xuv/12Pf/8855Nordt26bXXntN//3f\n/62FCxfqo48+8nquYHL76quvlJWV5RVbuHChsrOztXz5ct1www3617/+1epxpaWlKigo0OzZs7V/\n/34tXLhQEyZM0NKlS3XBBRfo0Ucf9Wy71Z7Dhw+rvr5ezzzzjKZMmaJly5aptrZWkrRs2TLFx8dr\n8eLF+tWvfqV//vOfrR5/+umn64svvgjotU5or3+DzTExMVFLlizRHXfcofXr17f52oMHD9aTTz6p\npUuX6swzz2y1QfaGDRv04x//WM8//7zOOeecNvvT7XZr5MiRKioqUlFRkRISErRs2TKfr7t//379\nv//3//SHP/xBL7zwgmbPnu35AbN69WodPHhQTz31lGbPnt1uG04WSA6n/n0vWrRIcXFxevLJJ/XY\nY4/pgw8+0D/+8Y9Wz3355Zfrtttu09lnn62VK1cqLy9Pe/bs0dNPP63Jkydr+fLlys3N1WOPPabG\nxkYZhqFHH31UZ5xxhhYvXqw5c+bo9ddf17Zt2zR48GD9+Mc/1iWXXKKVK1dStCEsKNyAU3z66aeq\nrKzUJZdcov79+6tXr17asGGD1zFDhgxRTk6O4uPjdeONN+qzzz5TZWWlSkpKlJmZqe9973uKi4vT\niBEjlJWVpS1btqhLly4aOnSo3nnnHUnSgQMHtG/fPg0dOlRut1v/+Mc/dPPNNys5OVldu3bVdddd\n5zn2VO+++66uuuoqpaenKzk5WWPGjGl1zMiRI9W3b1/FxcXJ4XBoyJAhyszMlM1mU05OjgYNGqRP\nP/1UkrRx40aNHDlS/fr1U2Jiom644QbP8wSbW319vbp27eq5XVlZqd27d2vcuHFyOBw655xzdOGF\nF7Z63A033KDExEQlJCRo48aNuuCCCzRo0CA5HA5de+21On78uHbs2NFO77WIi4vT9ddf72l3YmKi\n9u/fL8Mw9P7772vcuHFKTExUv379dNlll7V6fNeuXVVfXx/Qa53QVv92JMe8vDx16dJFffr08Znj\nyS6//HJ17dpV8fHxuuGGG/Tll1965T9s2DCdc845stvtio+Pb7M/u3fvrosvvlhdunTx3HfisoFT\n2e12NTY2au/evWpqatJpp53mGUF79913dd111yk5OVlOp1M//OEPA34vA8nh5L/v2tpabdu2TRMm\nTFBiYqJSUlJ09dVXa+PGjQG93j/+8Q/l5uZqwIABstvtGjlypBwOh3bu3Kndu3erurra01e9evXS\n6NGjA35uoLNxqhQ4xbp16zRo0CD16NFD0jfXPF1zzTWeY04+bZSYmKjk5GQdOnRILpfLM+JwQkZG\nhlwul+e5Vq5cqeuvv14bNmzQsGHD1KVLFx05ckTHjh3TzJkzPY9r69qdQ4cOeeXgdDpbHXPqqa2t\nW7fqlVde0f79++V2u3Xs2DH169fP83z9+/f3yvmE6urqoHLr1q2bjh496rntcrmUnJysLl26eOV7\nYtNyX/keOnTIKwe73S6n0+l5H9vTvXt3xcXFeW536dJFDQ0Nqq6uVnNzs9drZWRktCoKjh49qqSk\npIBe62T++vc/zdHfaUqp5bT5iVO11dXVno3hq6urPW04+fHt9eexY8f0/PPPa9u2baqrq5PU8n4Y\nhtHqtGNmZqYmTJig1atXa+/evTr//PN10003KS0tLaC/UX8CyeHk566srFRzc7PXBBC3293m+3ay\nyspKrV+/Xm+88YYn1tTUJJfLJbvdrkOHDmnChAme+wzD0Lnnnhtwe4DOROEGnOT48eN69913ZRiG\nbrvtNkktH+B1dXX64osvdMYZZ0iSqqqqPI9paGhQbW2tUlNTlZaWpvfff9/rOSsrKzV48GBJ0vnn\nn6/CwkJ98cUXeuedd3TzzTdLavkST0hI0BNPPKG0tLR280xNTfUqYk4tgiR5vsCllmvU5s+fr6lT\np2ro0KFyOBx67LHHvJ7v5Dad/HzB5vatb31L//M//+P13LW1tTp27JiniGkv39TUVH311Vee2263\nW5WVlZ7X79Kli44dO+a5//DhwwF9Sffo0UNxcXGqqqrS6aef7jeXffv26dprr233+U7lr3+DcXKO\nJ045n9w3p9qwYYM2b96s3/3ud8rIyFB9fb0mTpzodczJ7217/fnaa69p//79euSRR9SzZ0998cUX\n+u1vfyu32+3z9UeMGKERI0aovr5eS5Ys0apVq3TnnXeqZ8+eqqqq8lxrd+r73FYfBpLDyW1KT0+X\nw+HQsmXLvIrhQKWnp+u6667Tdddd1+q+zz77TKeddlqr08++8gDCgVOlwEn+7//+T3a7XQUFBZo3\nb57mzZungoICnXvuuXr77bc9x23dulWffvqpmpqa9PLLL2vAgAFyOp264IILdODAAW3YsEHNzc3a\nuHGj9u7dqyFDhkhqOT128cUXa+XKlaqtrdWgQYMktYwojR49WitWrPCsIeZyubRt2zafeV5yySV6\n/fXX5XK5VFdXp+Li4jbb1dTUpMbGRk9RsHXrVn344Ydez7du3Trt3btXx44d0+rVqz33BZvbWWed\npbq6Ok9hmZGRoezsbK1evVpNTU367LPPtGXLljbzHT58uLZu3aqPPvpITU1Neu211xQfH6+BAwdK\nks444wxt2LBBhmFo27ZtKi0tbfP5Tm7LRRddpNWrV+vYsWPau3dvq2uvXC6XamtrNWDAgICe82T+\n+jcYp+a4b9++Nq8PO3r0qBwOh5KTk3Xs2DG99NJL7T5/W/3Z0NCghIQEJSUlqba21utv4VT79+/X\nxx9/rMbGRiUkJCghIcEzInbJJZdozZo1qq2tVVVVlddoltR2HwaTg9RS6J9//vl64YUXVF9fL8Mw\nVFZWFvDfxejRo/Xmm29q586dcrvdamhoUElJiY4ePaqzzjpLXbt21auvvqrjx4/LMAx99dVX2rVr\nlyQpJSVFFRUVMTdbF+ZF4QacZP369Ro1apScTqd69uzp+ecHP/iB/vWvf3mWqvjud7+r1atXa+LE\nifr88889azh1795dM2fO1GuvvaZbbrlFxcXFmjlzpue0q9QyQvHRRx/p4osv9hodGD9+vDIzMzV7\n9mzdfPPNeuihh7R//36feY4ePVqDBg3Svffeq9/+9re64IILFBcX1+pU1gldu3bVxIkTVVBQoIkT\nJ2rDhg1e115dcMEFuvrqq/Xggw/qrrvu0re//W2vxweTm8Ph0MiRI70K3TvvvFOfffaZbrnlFr38\n8ssaPnx4m2vjZWVl6c4779Ty5ct16623asuWLZoxY4YcjpaTBBMmTNCWLVs0YcIE/etf/9KwYcP8\nPtepbr31VjU0NGjy5MkqLCzUyJEjve7fsGGDLrvssg6v3eevf4Nx6623qr6+XpMnT9aiRYv03e9+\n128+l112mTIyMjRlyhTdfffdARWcbfXnVVddpePHj+vWW2/V7NmzPaPFvjQ2NmrVqlW69dZbddtt\nt6m6ulo33nijpJZrFjMyMjR16lT9/ve/1/e+9z2vx7bVh8HkcMLUqVPV1NSku+++WxMnTtQTTzyh\nQ4cOtfs4ScrOztYvf/lLLV++XBMnTtRdd92ldevWSWopdGfMmKEvvvhCd9xxh2699VYtXrzYcw3h\niRnnt956q2bMmBHQ6wH/CZvb3/g3gKixdetWPfvssyoqKop0KpJarqOaM2eOHnvsMZ9LhhQUFOj0\n009XXl5eBLLzr7GxURxBja4AAAD8SURBVL/5zW/04IMPKiUlJdLpeLz44os6fPiwpk6dGulUOuzE\nEignlgMB0DGMuAFR6Pjx4yopKVFzc7NnKYeLLroo0ml59OjRQwsWLPAUbbt27VJZWZnntNjmzZuD\nGiULl/j4eC1YsCDiRdu+ffv05Zdfyu12a9euXfrnP/9pqv4FEDlMTgCikNvt1urVqz3F0ZAhQ0w3\nenWyw4cPa/78+aqpqVF6eromTZqkM888M9JpmdbRo0e1cOFCHTp0SCkpKbrmmmtMWegCCD9OlQIA\nAEQJTpUCAABECQo3AACAKEHhBgAAECUo3AAAAKIEhRsAAECUoHADAACIEv8fBCiQ7C+OAOwAAAAA\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbe0ac50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（3）车库大小(GarageArea)和房屋售价的关系(SalePrice)\n",
    "plt.scatter(x=train['GarageCars'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n5S3g8H4oqyph8AtwiU25iYiIqPtj4NYO3NaJiIiInIFDpURERERugoEbERERkZtg4EZERETkJhi4\nEREREbkJBm5EREREboKBGxEREZGbYOBGRERE5CYYuBERERG5CQZuRERERG6CgRsRERGRm2DgRkRE\nROQmGLgRERERuQkGbkRERERugoEbERERkZtg4EZERETkJhi4EREREbkJBm5EREREbkLp7AoQWWMs\nKQIO74dQroMsOBSYMRdyTbizq0VERORUDNzI5RhLiiAkrQdKigAAAgBcuwjjytcZvBERUY/GwK0d\nmnqDdFWVMPoFsDeosx3ebw7azP7d5ljwe+fUiYiIyAUwcJOoeW9QQ1Mhe4M6lVCuk1RORETUU3Bx\nglS2eoOoU8iCQyWVExER9RQM3CRib5ADzJgLtOy91ISbyomIiHowDpVK5e0jrZwkk2vCYVz5OleV\nEhERtcDAjVySXBPOhQhEREQtOCRwS01NRW5uLoKCgpCYmAgA0Ov1SEpKQklJCTQaDVauXAl/f/9W\nr509ezb69esHAFCr1VizZo0jqiyutkZaOREREVEncUjgFhMTg1//+tdISUkxlx06dAgPP/wwZs6c\niUOHDuHQoUP43e9+1+q1np6e2Lx5syOqaRdZcKgpr5iVciIiIqKu5JDFCcOGDWvVm5adnY1JkyYB\nACZNmoTs7GxHVKXjOHGeiIiInMRpc9zu3buHkJAQAEBISAgqKiqsHtfQ0IC1a9dCoVBgxowZGDt2\nrCOr2UrzifPKqkoYmICXiIiIHMTlFyekpqYiNDQUd+/exeuvv45+/fohPNx6kHT06FEcPXoUALBx\n40ao1equqZRaDQx9G0qlEgaDoWvew80plcqua/92MhQVourATjTqtFCEquE3ZxGU4RFOqYsrto8r\nYfuIY9vYxvYRx7axzV3ax2mBW1BQEMrKyhASEoKysjIEBgZaPS401DR3LCwsDMOGDcONGzdEA7ep\nU6di6tSp5sdarbbzK477W16xx02cWq3usvZvj5b7nzYAqD1/BjIn7Xjhau3jatg+4tg2trF9xLFt\nbHN2+0RE2NeR4LQEvNHR0cjMzAQAZGZmYsyYMa2O0ev1aGgwbSxVUVGBixcvok+fPg6tZ0tNAYDw\nfSYafsiF8H0mhKT1pmCOXBd3vCAiom7AIT1uycnJKCgoQGVlJRYvXozY2FjMnDkTSUlJOHbsGNRq\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbccb828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（4）GarageArea\n",
    "plt.scatter(x=train['GarageArea'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTklJCZmZmezevVvkchLu3LnDu+++C/TPRvr7+xMcHEx7e7v4jk9CdXU1ycnJaDQaZs2axbZt29Dp\ndD+YXIrCTRAEQRAEYZoQS6WCIAiCIAjThCjcBEEQBEEQpglRuAmCIAiCIEwTonATBEEQBEGYJkTh\nJgiCIAiCME2Iwk0QJigxMZEzZ85MdRj/cyEhITQ2Nk5q27a2Nn73u9/R29v7kKN6+LKysnjrrbcA\nUKvV7Ny5k3v37o3Y/pNPPiEhIQEAhULBa6+9hlarHXM/x48f59NPP304QQsPRKfTkZSURGhoKH/4\nwx+mOhxBmBDxk1eCMIK3336bmpoajh8/jomJyVSHM62cPXuWwMBATE1NpzqUCTExMSEwMJBz587x\n+uuvj9newcGB9PT0cfUdERHxoOEJD0l5eTk3btzg/fffx9zc/IH6+uSTT2hsbCQqKuohRScIoxMz\nboIwjKamJsrKygDIy8ub4mgejE6nG9eM0MOiVqvJzs5m+fLlk9p+4OeSpoq/vz/Z2dmo1eopjeN/\n5VGeC4/CZM7vu3fv4ujo+MBFmyBMBTHjJgjDuHTpEk888QQeHh5kZ2fj5+en93lbWxv79++nsrKS\nuXPnEhkZiaOjI9D/G44nTpygvr4eZ2dn5HI58+fP58qVK2RmZnLgwAGpny+++IKSkhKio6NRq9Wc\nPn2aq1evotFo8PX1RS6XDztrpdVq+fjjj8nOzsbc3Jy1a9eSmprK6dOnMTIy4u2332b+/PmUlpZy\n69Yt4uLiKCsr4/PPP6e5uRlra2teeeUVXnzxRanPzz//nC+++AIDAwM2bNigt7+JxFZZWYmlpSUy\nmUx6r6mpicTERKqqqvD09OQnP/kJnZ2dREVF0dTURGRkJFu3biUjI4NZs2axb98+8vLy+Otf/4pS\nqcTNzY0tW7YwZ84coH8ZNyEhAScnJ6B/+Vomk/GLX/yCkpIS3nvvPYKCgjh37hyGhoZs3LhReup5\ne3s7SUlJlJaW4uzszOLFi/Xil8lkzJgxg8rKShYtWjTqeTIQ++nTp7l27dqo4zvRGBMTEykrK5Ni\nLCkpYf/+/cPGcejQIcrKyujt7ZVy9dhjj0m5MTU1RaFQUFpayhtvvMHChQtHHE+VSsXRo0eprKxE\nq9Uyf/58wsPD9cZzsLNnz/KPf/yDrq4u7Ozs2LJlCz/96U/p7e3lgw8+IC8vD1tbWwIDAzl//jzJ\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbcf2e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（5）TotalBsmtSF\n",
    "plt.scatter(x=train['TotalBsmtSF'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nx8D7h3kAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbdf3be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（6）TotRmsAbvGrd     0.533723\n",
    "plt.scatter(x=train['TotRmsAbvGrd'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111cbde4d68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（7）YearBuilt        0.522897\n",
    "plt.scatter(x=train['YearBuilt'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111ccf13a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#（8）YearRemodAdd     0.507101\n",
    "plt.scatter(x=train['YearRemodAdd'], y=target)\n",
    "plt.ylabel('Sale Price')\n",
    "plt.xlabel('Above grade (ground) living area square feet')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Null Count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Feature</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>PoolQC</th>\n",
       "      <td>1453</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MiscFeature</th>\n",
       "      <td>1406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Alley</th>\n",
       "      <td>1369</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fence</th>\n",
       "      <td>1179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FireplaceQu</th>\n",
       "      <td>690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LotFrontage</th>\n",
       "      <td>259</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageCond</th>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageType</th>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageYrBlt</th>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageFinish</th>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GarageQual</th>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtExposure</th>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFinType2</th>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtFinType1</th>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtCond</th>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BsmtQual</th>\n",
       "      <td>37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MasVnrArea</th>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MasVnrType</th>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Electrical</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Utilities</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>YearRemodAdd</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MSSubClass</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Foundation</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExterCond</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ExterQual</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Null Count\n",
       "Feature                 \n",
       "PoolQC              1453\n",
       "MiscFeature         1406\n",
       "Alley               1369\n",
       "Fence               1179\n",
       "FireplaceQu          690\n",
       "LotFrontage          259\n",
       "GarageCond            81\n",
       "GarageType            81\n",
       "GarageYrBlt           81\n",
       "GarageFinish          81\n",
       "GarageQual            81\n",
       "BsmtExposure          38\n",
       "BsmtFinType2          38\n",
       "BsmtFinType1          37\n",
       "BsmtCond              37\n",
       "BsmtQual              37\n",
       "MasVnrArea             8\n",
       "MasVnrType             8\n",
       "Electrical             1\n",
       "Utilities              0\n",
       "YearRemodAdd           0\n",
       "MSSubClass             0\n",
       "Foundation             0\n",
       "ExterCond              0\n",
       "ExterQual              0"
      ]
     },
     "execution_count": 152,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#数据清洗\n",
    "#处理空白值\n",
    "nulls = pd.DataFrame(train.isnull().sum().sort_values(ascending=False)[:25])\n",
    "nulls.columns = ['Null Count']\n",
    "nulls.index.name = 'Feature'\n",
    "nulls"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values are: [nan 'Ex' 'Fa' 'Gd']\n"
     ]
    }
   ],
   "source": [
    "#PoolQC\n",
    "print (\"Unique values are:\", train.PoolQC.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values are: [nan 'Shed' 'Gar2' 'Othr' 'TenC']\n"
     ]
    }
   ],
   "source": [
    "#MiscFeature\n",
    "print (\"Unique values are:\", train.MiscFeature.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values are: [nan 'Grvl' 'Pave']\n"
     ]
    }
   ],
   "source": [
    "#Alley\n",
    "print (\"Unique values are:\", train.Alley.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values are: [nan 'MnPrv' 'GdWo' 'GdPrv' 'MnWw']\n"
     ]
    }
   ],
   "source": [
    "#Fence\n",
    "print (\"Unique values are:\", train.Fence.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values are: [nan 'TA' 'Gd' 'Fa' 'Ex' 'Po']\n"
     ]
    }
   ],
   "source": [
    "#FireplaceQu\n",
    "print (\"Unique values are:\", train.FireplaceQu.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values are: [  65.   80.   68.   60.   84.   85.   75.   nan   51.   50.   70.   91.\n",
      "   72.   66.  101.   57.   44.  110.   98.   47.  108.  112.   74.  115.\n",
      "   61.   48.   33.   52.  100.   24.   89.   63.   76.   81.   95.   69.\n",
      "   21.   32.   78.  121.  122.   40.  105.   73.   77.   64.   94.   34.\n",
      "   90.   55.   88.   82.   71.  120.  107.   92.  134.   62.   86.  141.\n",
      "   97.   54.   41.   79.  174.   99.   67.   83.   43.  103.   93.   30.\n",
      "  129.  140.   35.   37.  118.   87.  116.  150.  111.   49.   96.   59.\n",
      "   36.   56.  102.   58.   38.  109.  130.   53.  137.   45.  106.  104.\n",
      "   42.   39.  144.  114.  128.  149.  313.  168.  182.  138.  160.  152.\n",
      "  124.  153.   46.]\n"
     ]
    }
   ],
   "source": [
    "#LotFrontage\n",
    "print (\"Unique values are:\", train.LotFrontage.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MSZoning</th>\n",
       "      <th>Street</th>\n",
       "      <th>Alley</th>\n",
       "      <th>LotShape</th>\n",
       "      <th>LandContour</th>\n",
       "      <th>Utilities</th>\n",
       "      <th>LotConfig</th>\n",
       "      <th>LandSlope</th>\n",
       "      <th>Neighborhood</th>\n",
       "      <th>Condition1</th>\n",
       "      <th>...</th>\n",
       "      <th>GarageType</th>\n",
       "      <th>GarageFinish</th>\n",
       "      <th>GarageQual</th>\n",
       "      <th>GarageCond</th>\n",
       "      <th>PavedDrive</th>\n",
       "      <th>PoolQC</th>\n",
       "      <th>Fence</th>\n",
       "      <th>MiscFeature</th>\n",
       "      <th>SaleType</th>\n",
       "      <th>SaleCondition</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>91</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "      <td>...</td>\n",
       "      <td>1379</td>\n",
       "      <td>1379</td>\n",
       "      <td>1379</td>\n",
       "      <td>1379</td>\n",
       "      <td>1460</td>\n",
       "      <td>7</td>\n",
       "      <td>281</td>\n",
       "      <td>54</td>\n",
       "      <td>1460</td>\n",
       "      <td>1460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unique</th>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>25</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>top</th>\n",
       "      <td>RL</td>\n",
       "      <td>Pave</td>\n",
       "      <td>Grvl</td>\n",
       "      <td>Reg</td>\n",
       "      <td>Lvl</td>\n",
       "      <td>AllPub</td>\n",
       "      <td>Inside</td>\n",
       "      <td>Gtl</td>\n",
       "      <td>NAmes</td>\n",
       "      <td>Norm</td>\n",
       "      <td>...</td>\n",
       "      <td>Attchd</td>\n",
       "      <td>Unf</td>\n",
       "      <td>TA</td>\n",
       "      <td>TA</td>\n",
       "      <td>Y</td>\n",
       "      <td>Gd</td>\n",
       "      <td>MnPrv</td>\n",
       "      <td>Shed</td>\n",
       "      <td>WD</td>\n",
       "      <td>Normal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>freq</th>\n",
       "      <td>1151</td>\n",
       "      <td>1454</td>\n",
       "      <td>50</td>\n",
       "      <td>925</td>\n",
       "      <td>1311</td>\n",
       "      <td>1459</td>\n",
       "      <td>1052</td>\n",
       "      <td>1382</td>\n",
       "      <td>225</td>\n",
       "      <td>1260</td>\n",
       "      <td>...</td>\n",
       "      <td>870</td>\n",
       "      <td>605</td>\n",
       "      <td>1311</td>\n",
       "      <td>1326</td>\n",
       "      <td>1340</td>\n",
       "      <td>3</td>\n",
       "      <td>157</td>\n",
       "      <td>49</td>\n",
       "      <td>1267</td>\n",
       "      <td>1198</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4 rows × 43 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       MSZoning Street Alley LotShape LandContour Utilities LotConfig  \\\n",
       "count      1460   1460    91     1460        1460      1460      1460   \n",
       "unique        5      2     2        4           4         2         5   \n",
       "top          RL   Pave  Grvl      Reg         Lvl    AllPub    Inside   \n",
       "freq       1151   1454    50      925        1311      1459      1052   \n",
       "\n",
       "       LandSlope Neighborhood Condition1      ...      GarageType  \\\n",
       "count       1460         1460       1460      ...            1379   \n",
       "unique         3           25          9      ...               6   \n",
       "top          Gtl        NAmes       Norm      ...          Attchd   \n",
       "freq        1382          225       1260      ...             870   \n",
       "\n",
       "       GarageFinish GarageQual GarageCond PavedDrive PoolQC  Fence  \\\n",
       "count          1379       1379       1379       1460      7    281   \n",
       "unique            3          5          5          3      3      4   \n",
       "top             Unf         TA         TA          Y     Gd  MnPrv   \n",
       "freq            605       1311       1326       1340      3    157   \n",
       "\n",
       "       MiscFeature SaleType SaleCondition  \n",
       "count           54     1460          1460  \n",
       "unique           4        9             6  \n",
       "top           Shed       WD        Normal  \n",
       "freq            49     1267          1198  \n",
       "\n",
       "[4 rows x 43 columns]"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "###处理非数字特征统计\n",
    "categoricals = train.select_dtypes(exclude=[np.number])\n",
    "categoricals.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSZoning\n",
      "RL         1151\n",
      "RM          218\n",
      "FV           65\n",
      "RH           16\n",
      "C (all)      10\n",
      "Name: MSZoning, dtype: int64 \n",
      "\n",
      "LandContour\n",
      "Lvl    1311\n",
      "Bnk      63\n",
      "HLS      50\n",
      "Low      36\n",
      "Name: LandContour, dtype: int64 \n",
      "\n",
      "LotConfig\n",
      "Inside     1052\n",
      "Corner      263\n",
      "CulDSac      94\n",
      "FR2          47\n",
      "FR3           4\n",
      "Name: LotConfig, dtype: int64 \n",
      "\n",
      "Neighborhood\n",
      "NAmes      225\n",
      "CollgCr    150\n",
      "OldTown    113\n",
      "Edwards    100\n",
      "Somerst     86\n",
      "Gilbert     79\n",
      "NridgHt     77\n",
      "Sawyer      74\n",
      "NWAmes      73\n",
      "SawyerW     59\n",
      "BrkSide     58\n",
      "Crawfor     51\n",
      "Mitchel     49\n",
      "NoRidge     41\n",
      "Timber      38\n",
      "IDOTRR      37\n",
      "ClearCr     28\n",
      "SWISU       25\n",
      "StoneBr     25\n",
      "MeadowV     17\n",
      "Blmngtn     17\n",
      "BrDale      16\n",
      "Veenker     11\n",
      "NPkVill      9\n",
      "Blueste      2\n",
      "Name: Neighborhood, dtype: int64 \n",
      "\n",
      "Condition1\n",
      "Norm      1260\n",
      "Feedr       81\n",
      "Artery      48\n",
      "RRAn        26\n",
      "PosN        19\n",
      "RRAe        11\n",
      "PosA         8\n",
      "RRNn         5\n",
      "RRNe         2\n",
      "Name: Condition1, dtype: int64 \n",
      "\n",
      "Condition2\n",
      "Norm      1445\n",
      "Feedr        6\n",
      "RRNn         2\n",
      "Artery       2\n",
      "PosN         2\n",
      "PosA         1\n",
      "RRAn         1\n",
      "RRAe         1\n",
      "Name: Condition2, dtype: int64 \n",
      "\n",
      "BldgType\n",
      "1Fam      1220\n",
      "TwnhsE     114\n",
      "Duplex      52\n",
      "Twnhs       43\n",
      "2fmCon      31\n",
      "Name: BldgType, dtype: int64 \n",
      "\n",
      "HouseStyle\n",
      "1Story    726\n",
      "2Story    445\n",
      "1.5Fin    154\n",
      "SLvl       65\n",
      "SFoyer     37\n",
      "1.5Unf     14\n",
      "2.5Unf     11\n",
      "2.5Fin      8\n",
      "Name: HouseStyle, dtype: int64 \n",
      "\n",
      "RoofStyle\n",
      "Gable      1141\n",
      "Hip         286\n",
      "Flat         13\n",
      "Gambrel      11\n",
      "Mansard       7\n",
      "Shed          2\n",
      "Name: RoofStyle, dtype: int64 \n",
      "\n",
      "RoofMatl\n",
      "CompShg    1434\n",
      "Tar&Grv      11\n",
      "WdShngl       6\n",
      "WdShake       5\n",
      "ClyTile       1\n",
      "Membran       1\n",
      "Roll          1\n",
      "Metal         1\n",
      "Name: RoofMatl, dtype: int64 \n",
      "\n",
      "Foundation\n",
      "PConc     647\n",
      "CBlock    634\n",
      "BrkTil    146\n",
      "Slab       24\n",
      "Stone       6\n",
      "Wood        3\n",
      "Name: Foundation, dtype: int64 \n",
      "\n",
      "Heating\n",
      "GasA     1428\n",
      "GasW       18\n",
      "Grav        7\n",
      "Wall        4\n",
      "OthW        2\n",
      "Floor       1\n",
      "Name: Heating, dtype: int64 \n",
      "\n",
      "CentralAir\n",
      "Y    1365\n",
      "N      95\n",
      "Name: CentralAir, dtype: int64 \n",
      "\n",
      "Electrical\n",
      "SBrkr    1334\n",
      "FuseA      94\n",
      "FuseF      27\n",
      "FuseP       3\n",
      "Mix         1\n",
      "Name: Electrical, dtype: int64 \n",
      "\n",
      "GarageType\n",
      "Attchd     870\n",
      "Detchd     387\n",
      "BuiltIn     88\n",
      "Basment     19\n",
      "CarPort      9\n",
      "2Types       6\n",
      "Name: GarageType, dtype: int64 \n",
      "\n",
      "GarageFinish\n",
      "Unf    605\n",
      "RFn    422\n",
      "Fin    352\n",
      "Name: GarageFinish, dtype: int64 \n",
      "\n",
      "Fence\n",
      "MnPrv    157\n",
      "GdPrv     59\n",
      "GdWo      54\n",
      "MnWw      11\n",
      "Name: Fence, dtype: int64 \n",
      "\n",
      "MiscFeature\n",
      "Shed    49\n",
      "Othr     2\n",
      "Gar2     2\n",
      "TenC     1\n",
      "Name: MiscFeature, dtype: int64 \n",
      "\n",
      "SaleType\n",
      "WD       1267\n",
      "New       122\n",
      "COD        43\n",
      "ConLD       9\n",
      "ConLw       5\n",
      "ConLI       5\n",
      "CWD         4\n",
      "Oth         3\n",
      "Con         2\n",
      "Name: SaleType, dtype: int64 \n",
      "\n",
      "SaleCondition\n",
      "Normal     1198\n",
      "Partial     125\n",
      "Abnorml     101\n",
      "Family       20\n",
      "Alloca       12\n",
      "AdjLand       4\n",
      "Name: SaleCondition, dtype: int64 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(\"MSZoning\")\n",
    "print(train.MSZoning.value_counts(), \"\\n\")\n",
    "print(\"LandContour\")\n",
    "print(train.LandContour.value_counts(), \"\\n\")\n",
    "print(\"LotConfig\")\n",
    "print(train.LotConfig.value_counts(), \"\\n\")\n",
    "print(\"Neighborhood\")\n",
    "print(train.Neighborhood.value_counts(), \"\\n\")\n",
    "print(\"Condition1\")\n",
    "print(train.Condition1.value_counts(), \"\\n\")\n",
    "print(\"Condition2\")\n",
    "print(train.Condition2.value_counts(), \"\\n\")\n",
    "print(\"BldgType\")\n",
    "print(train.BldgType.value_counts(), \"\\n\")\n",
    "print(\"HouseStyle\")\n",
    "print(train.HouseStyle.value_counts(), \"\\n\")\n",
    "print(\"RoofStyle\")\n",
    "print(train.RoofStyle.value_counts(), \"\\n\")\n",
    "print(\"RoofMatl\")\n",
    "print(train.RoofMatl.value_counts(), \"\\n\")\n",
    "print(\"Foundation\")\n",
    "print(train.Foundation.value_counts(), \"\\n\")\n",
    "print(\"Heating\")\n",
    "print(train.Heating.value_counts(), \"\\n\")\n",
    "print(\"CentralAir\")\n",
    "print(train.CentralAir.value_counts(), \"\\n\")\n",
    "print(\"Electrical\")\n",
    "print(train.Electrical.value_counts(), \"\\n\")\n",
    "print(\"GarageType\")\n",
    "print(train.GarageType.value_counts(), \"\\n\")\n",
    "print(\"GarageFinish\")\n",
    "print(train.GarageFinish.value_counts(), \"\\n\")\n",
    "print(\"Fence\")\n",
    "print(train.Fence.value_counts(), \"\\n\")\n",
    "print(\"MiscFeature\")\n",
    "print(train.MiscFeature.value_counts(), \"\\n\")\n",
    "print(\"SaleType\")\n",
    "print(train.SaleType.value_counts(), \"\\n\")\n",
    "print(\"SaleCondition\")\n",
    "print(train.SaleCondition.value_counts(), \"\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [],
   "source": [
    "#缺失值处理\n",
    "def process_missvalue_by_meaning (df):\n",
    "    # Alley : data description says NA means \"no alley access\"\n",
    "    df.loc[:, \"Alley\"] = df.loc[:, \"Alley\"].fillna(\"None\")\n",
    "\n",
    "    # BedroomAbvGr : NA most likely means 0\n",
    "    df.loc[:, \"BedroomAbvGr\"] = df.loc[:, \"BedroomAbvGr\"].fillna(0)\n",
    "\n",
    "    # BsmtQual etc : data description says NA for basement features is \"no basement\"\n",
    "    df.loc[:, \"BsmtQual\"] = df.loc[:, \"BsmtQual\"].fillna(\"No\")\n",
    "    df.loc[:, \"BsmtCond\"] = df.loc[:, \"BsmtCond\"].fillna(\"No\")\n",
    "    df.loc[:, \"BsmtExposure\"] = df.loc[:, \"BsmtExposure\"].fillna(\"No\")\n",
    "    df.loc[:, \"BsmtFinType1\"] = df.loc[:, \"BsmtFinType1\"].fillna(\"No\")\n",
    "    df.loc[:, \"BsmtFinType2\"] = df.loc[:, \"BsmtFinType2\"].fillna(\"No\")\n",
    "    df.loc[:, \"BsmtFullBath\"] = df.loc[:, \"BsmtFullBath\"].fillna(0)\n",
    "    df.loc[:, \"BsmtHalfBath\"] = df.loc[:, \"BsmtHalfBath\"].fillna(0)\n",
    "    df.loc[:, \"BsmtUnfSF\"] = df.loc[:, \"BsmtUnfSF\"].fillna(0)\n",
    "\n",
    "    # CentralAir : NA most likely means No\n",
    "    df.loc[:, \"CentralAir\"] = df.loc[:, \"CentralAir\"].fillna(\"N\")\n",
    "\n",
    "    # Condition : NA most likely means Normal，靠近主干道或铁路\n",
    "    df.loc[:, \"Condition1\"] = df.loc[:, \"Condition1\"].fillna(\"Norm\")\n",
    "    df.loc[:, \"Condition2\"] = df.loc[:, \"Condition2\"].fillna(\"Norm\")\n",
    "\n",
    "    # EnclosedPorch : NA most likely means no enclosed porch\n",
    "    df.loc[:, \"EnclosedPorch\"] = df.loc[:, \"EnclosedPorch\"].fillna(0)\n",
    "\n",
    "    # External stuff : NA most likely means average\n",
    "    df.loc[:, \"ExterCond\"] = df.loc[:, \"ExterCond\"].fillna(\"TA\")\n",
    "    df.loc[:, \"ExterQual\"] = df.loc[:, \"ExterQual\"].fillna(\"TA\")\n",
    "\n",
    "    # Fence : data description says NA means \"no fence\"\n",
    "    df.loc[:, \"Fence\"] = df.loc[:, \"Fence\"].fillna(\"No\")\n",
    "\n",
    "    # FireplaceQu : data description says NA means \"no fireplace\"\n",
    "    df.loc[:, \"FireplaceQu\"] = df.loc[:, \"FireplaceQu\"].fillna(\"No\")\n",
    "    df.loc[:, \"Fireplaces\"] = df.loc[:, \"Fireplaces\"].fillna(0)\n",
    "\n",
    "    # Functional : data description says NA means typical，家用（Home）功能性评级\n",
    "    df.loc[:, \"Functional\"] = df.loc[:, \"Functional\"].fillna(\"Typ\")\n",
    "\n",
    "    # GarageType etc : data description says NA for garage features is \"no garage\"\n",
    "    df.loc[:, \"GarageType\"] = df.loc[:, \"GarageType\"].fillna(\"No\")\n",
    "    df.loc[:, \"GarageFinish\"] = df.loc[:, \"GarageFinish\"].fillna(\"No\")\n",
    "    df.loc[:, \"GarageQual\"] = df.loc[:, \"GarageQual\"].fillna(\"No\")\n",
    "    df.loc[:, \"GarageCond\"] = df.loc[:, \"GarageCond\"].fillna(\"No\")\n",
    "    df.loc[:, \"GarageArea\"] = df.loc[:, \"GarageArea\"].fillna(0)\n",
    "    df.loc[:, \"GarageCars\"] = df.loc[:, \"GarageCars\"].fillna(0)\n",
    "\n",
    "    # HalfBath : NA most likely means no half baths above grade\n",
    "    df.loc[:, \"HalfBath\"] = df.loc[:, \"HalfBath\"].fillna(0)\n",
    "\n",
    "    # HeatingQC : NA most likely means typical\n",
    "    df.loc[:, \"HeatingQC\"] = df.loc[:, \"HeatingQC\"].fillna(\"TA\")\n",
    "\n",
    "    # KitchenAbvGr : NA most likely means 0\n",
    "    df.loc[:, \"KitchenAbvGr\"] = df.loc[:, \"KitchenAbvGr\"].fillna(0)\n",
    "\n",
    "    # KitchenQual : NA most likely means typical\n",
    "    df.loc[:, \"KitchenQual\"] = df.loc[:, \"KitchenQual\"].fillna(\"TA\")\n",
    "\n",
    "    # LotFrontage : NA most likely means no lot frontage\n",
    "    df.loc[:, \"LotFrontage\"] = df.loc[:, \"LotFrontage\"].fillna(0)\n",
    "\n",
    "    # LotShape : NA most likely means regular\n",
    "    df.loc[:, \"LotShape\"] = df.loc[:, \"LotShape\"].fillna(\"Reg\")\n",
    "\n",
    "    # MasVnrType : NA most likely means no veneer，表层砌体（Masonry veneer）类型\n",
    "    df.loc[:, \"MasVnrType\"] = df.loc[:, \"MasVnrType\"].fillna(\"None\")\n",
    "    df.loc[:, \"MasVnrArea\"] = df.loc[:, \"MasVnrArea\"].fillna(0)\n",
    "    \n",
    "    #GarageYrBlt\n",
    "    df.loc[:, \"GarageYrBlt\"] = df.loc[:, \"GarageYrBlt\"].fillna(\"None\")\n",
    "    df.loc[:, \"GarageYrBlt\"] = df.loc[:, \"GarageYrBlt\"].fillna(0)\n",
    "    \n",
    "    # MiscFeature : data description says NA means \"no misc feature\"\n",
    "    df.loc[:, \"MiscFeature\"] = df.loc[:, \"MiscFeature\"].fillna(\"No\")\n",
    "    df.loc[:, \"MiscVal\"] = df.loc[:, \"MiscVal\"].fillna(0)\n",
    "\n",
    "    # OpenPorchSF : NA most likely means no open porch\n",
    "    df.loc[:, \"OpenPorchSF\"] = df.loc[:, \"OpenPorchSF\"].fillna(0)\n",
    "\n",
    "    # PavedDrive : NA most likely means not paved\n",
    "    df.loc[:, \"PavedDrive\"] = df.loc[:, \"PavedDrive\"].fillna(\"N\")\n",
    "\n",
    "    # PoolQC : data description says NA means \"no pool\"\n",
    "    df.loc[:, \"PoolQC\"] = df.loc[:, \"PoolQC\"].fillna(\"No\")\n",
    "    df.loc[:, \"PoolArea\"] = df.loc[:, \"PoolArea\"].fillna(0)\n",
    "\n",
    "    # SaleCondition : NA most likely means normal sale\n",
    "    df.loc[:, \"SaleCondition\"] = df.loc[:, \"SaleCondition\"].fillna(\"Normal\")\n",
    "\n",
    "    # ScreenPorch : NA most likely means no screen porch，观景门廊\n",
    "    df.loc[:, \"ScreenPorch\"] = df.loc[:, \"ScreenPorch\"].fillna(0)\n",
    "\n",
    "    # TotRmsAbvGrd : NA most likely means 0\n",
    "    df.loc[:, \"TotRmsAbvGrd\"] = df.loc[:, \"TotRmsAbvGrd\"].fillna(0)\n",
    "\n",
    "    # Utilities : NA most likely means all public utilities\n",
    "    df.loc[:, \"Utilities\"] = df.loc[:, \"Utilities\"].fillna(\"AllPub\")\n",
    "\n",
    "    # WoodDeckSF : NA most likely means no wood deck\n",
    "    df.loc[:, \"WoodDeckSF\"] = df.loc[:, \"WoodDeckSF\"].fillna(0)\n",
    "    \n",
    "    return df\n",
    "    \n",
    "train = process_missvalue_by_meaning(train)\n",
    "test = process_missvalue_by_meaning(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [],
   "source": [
    "#非数字类型的转换\n",
    "def cat2numberical(df):\n",
    "    df.replace({\"Alley\" : {\"None\":0, \"Grvl\" : 1, \"Pave\" : 2},\n",
    "                \"BsmtCond\" : {\"No\" : 0, \"Po\" : 1, \"Fa\" : 2, \"TA\" : 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"BsmtExposure\" : {\"No\" : 0, \"Mn\" : 1, \"Av\": 2, \"Gd\" : 3},\n",
    "                \"BsmtFinType1\" : {\"No\" : 0, \"Unf\" : 1, \"LwQ\": 2, \"Rec\" : 3, \"BLQ\" : 4, \n",
    "                                         \"ALQ\" : 5, \"GLQ\" : 6},\n",
    "                \"BsmtFinType2\" : {\"No\" : 0, \"Unf\" : 1, \"LwQ\": 2, \"Rec\" : 3, \"BLQ\" : 4, \n",
    "                                         \"ALQ\" : 5, \"GLQ\" : 6},\n",
    "                \"BsmtQual\" : {\"No\" : 0, \"Po\" : 1, \"Fa\" : 2, \"TA\": 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"ExterCond\" : {\"Po\" : 1, \"Fa\" : 2, \"TA\": 3, \"Gd\": 4, \"Ex\" : 5},\n",
    "                \"ExterQual\" : {\"Po\" : 1, \"Fa\" : 2, \"TA\": 3, \"Gd\": 4, \"Ex\" : 5},\n",
    "                \"FireplaceQu\" : {\"No\" : 0, \"Po\" : 1, \"Fa\" : 2, \"TA\" : 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"Functional\" : {\"Sal\" : 1, \"Sev\" : 2, \"Maj2\" : 3, \"Maj1\" : 4, \"Mod\": 5, \n",
    "                                       \"Min2\" : 6, \"Min1\" : 7, \"Typ\" : 8},\n",
    "                \"GarageCond\" : {\"No\" : 0, \"Po\" : 1, \"Fa\" : 2, \"TA\" : 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"GarageQual\" : {\"No\" : 0, \"Po\" : 1, \"Fa\" : 2, \"TA\" : 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"HeatingQC\" : {\"Po\" : 1, \"Fa\" : 2, \"TA\" : 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"KitchenQual\" : {\"Po\" : 1, \"Fa\" : 2, \"TA\" : 3, \"Gd\" : 4, \"Ex\" : 5},\n",
    "                \"LandSlope\" : {\"Sev\" : 1, \"Mod\" : 2, \"Gtl\" : 3},\n",
    "                \"LotShape\" : {\"IR3\" : 1, \"IR2\" : 2, \"IR1\" : 3, \"Reg\" : 4},\n",
    "                \"PavedDrive\" : {\"N\" : 0, \"P\" : 1, \"Y\" : 2},\n",
    "                \"PoolQC\" : {\"No\" : 0, \"Fa\" : 1, \"TA\" : 2, \"Gd\" : 3, \"Ex\" : 4},\n",
    "                \"Street\" : {\"Grvl\" : 1, \"Pave\" : 2},\n",
    "                \"Utilities\" : {\"ELO\" : 1, \"NoSeWa\" : 2, \"NoSewr\" : 3, \"AllPub\" : 4}},\n",
    "                       inplace = True\n",
    "                     )\n",
    "    return df\n",
    "\n",
    "train = cat2numberical(train)\n",
    "test = cat2numberical(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [],
   "source": [
    "def numberical2cat(df):\n",
    "    df.replace({\"MSSubClass\" : {20 : \"SC20\", 30 : \"SC30\", 40 : \"SC40\", 45 : \"SC45\", \n",
    "                                       50 : \"SC50\", 60 : \"SC60\", 70 : \"SC70\", 75 : \"SC75\", \n",
    "                                       80 : \"SC80\", 85 : \"SC85\", 90 : \"SC90\", 120 : \"SC120\", \n",
    "                                       150 : \"SC150\", 160 : \"SC160\", 180 : \"SC180\", 190 : \"SC190\"},\n",
    "                       \"MoSold\" : {1 : \"Jan\", 2 : \"Feb\", 3 : \"Mar\", 4 : \"Apr\", 5 : \"May\", 6 : \"Jun\",\n",
    "                                   7 : \"Jul\", 8 : \"Aug\", 9 : \"Sep\", 10 : \"Oct\", 11 : \"Nov\", 12 : \"Dec\"}\n",
    "                      }, inplace = True)\n",
    "\n",
    "    return df\n",
    "train = numberical2cat(train)\n",
    "test = numberical2cat(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1460 entries, 0 to 1459\n",
      "Data columns (total 82 columns):\n",
      "Id               1460 non-null int64\n",
      "MSSubClass       1460 non-null int64\n",
      "MSZoning         1460 non-null object\n",
      "LotFrontage      1460 non-null float64\n",
      "LotArea          1460 non-null int64\n",
      "Street           1460 non-null int64\n",
      "Alley            1460 non-null object\n",
      "LotShape         1460 non-null int64\n",
      "LandContour      1460 non-null object\n",
      "Utilities        1460 non-null int64\n",
      "LotConfig        1460 non-null object\n",
      "LandSlope        1460 non-null int64\n",
      "Neighborhood     1460 non-null object\n",
      "Condition1       1460 non-null object\n",
      "Condition2       1460 non-null object\n",
      "BldgType         1460 non-null object\n",
      "HouseStyle       1460 non-null object\n",
      "OverallQual      1460 non-null int64\n",
      "OverallCond      1460 non-null int64\n",
      "YearBuilt        1460 non-null int64\n",
      "YearRemodAdd     1460 non-null int64\n",
      "RoofStyle        1460 non-null object\n",
      "RoofMatl         1460 non-null object\n",
      "Exterior1st      1460 non-null object\n",
      "Exterior2nd      1460 non-null object\n",
      "MasVnrType       1460 non-null object\n",
      "MasVnrArea       1460 non-null float64\n",
      "ExterQual        1460 non-null int64\n",
      "ExterCond        1460 non-null int64\n",
      "Foundation       1460 non-null object\n",
      "BsmtQual         1460 non-null object\n",
      "BsmtCond         1460 non-null object\n",
      "BsmtExposure     1460 non-null object\n",
      "BsmtFinType1     1460 non-null object\n",
      "BsmtFinSF1       1460 non-null int64\n",
      "BsmtFinType2     1460 non-null object\n",
      "BsmtFinSF2       1460 non-null int64\n",
      "BsmtUnfSF        1460 non-null int64\n",
      "TotalBsmtSF      1460 non-null int64\n",
      "Heating          1460 non-null object\n",
      "HeatingQC        1460 non-null int64\n",
      "CentralAir       1460 non-null object\n",
      "Electrical       1459 non-null object\n",
      "1stFlrSF         1460 non-null int64\n",
      "2ndFlrSF         1460 non-null int64\n",
      "LowQualFinSF     1460 non-null int64\n",
      "GrLivArea        1460 non-null int64\n",
      "BsmtFullBath     1460 non-null int64\n",
      "BsmtHalfBath     1460 non-null int64\n",
      "FullBath         1460 non-null int64\n",
      "HalfBath         1460 non-null int64\n",
      "BedroomAbvGr     1460 non-null int64\n",
      "KitchenAbvGr     1460 non-null int64\n",
      "KitchenQual      1460 non-null int64\n",
      "TotRmsAbvGrd     1460 non-null int64\n",
      "Functional       1460 non-null int64\n",
      "Fireplaces       1460 non-null int64\n",
      "FireplaceQu      1460 non-null object\n",
      "GarageType       1460 non-null object\n",
      "GarageYrBlt      1379 non-null float64\n",
      "GarageFinish     1460 non-null object\n",
      "GarageCars       1460 non-null int64\n",
      "GarageArea       1460 non-null int64\n",
      "GarageQual       1460 non-null object\n",
      "GarageCond       1460 non-null object\n",
      "PavedDrive       1460 non-null int64\n",
      "WoodDeckSF       1460 non-null int64\n",
      "OpenPorchSF      1460 non-null int64\n",
      "EnclosedPorch    1460 non-null int64\n",
      "3SsnPorch        1460 non-null int64\n",
      "ScreenPorch      1460 non-null int64\n",
      "PoolArea         1460 non-null int64\n",
      "PoolQC           1460 non-null object\n",
      "Fence            1460 non-null object\n",
      "MiscFeature      1460 non-null object\n",
      "MiscVal          1460 non-null int64\n",
      "MoSold           1460 non-null int64\n",
      "YrSold           1460 non-null int64\n",
      "SaleType         1460 non-null object\n",
      "SaleCondition    1460 non-null object\n",
      "SalePrice        1460 non-null int64\n",
      "enc_street       1460 non-null uint8\n",
      "dtypes: float64(3), int64(45), object(33), uint8(1)\n",
      "memory usage: 925.4+ KB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {},
   "outputs": [],
   "source": [
    "#特征合并（1）\n",
    "def simplify(df):\n",
    "    df[\"SimplOverallQual\"] = df.OverallQual.replace({1 : 1, 2 : 1, 3 : 1, # bad\n",
    "                                                    4 : 2, 5 : 2, 6 : 2, # average\n",
    "                                                    7 : 3, 8 : 3, 9 : 3, 10 : 3 # good\n",
    "                                                    }, inplace = True)\n",
    "    df[\"SimplOverallCond\"] = df.OverallCond.replace({1 : 1, 2 : 1, 3 : 1, # bad\n",
    "                                                    4 : 2, 5 : 2, 6 : 2, # average\n",
    "                                                    7 : 3, 8 : 3, 9 : 3, 10 : 3 # good\n",
    "                                                    },inplace = True)\n",
    "    df[\"SimplPoolQC\"] = df.PoolQC.replace({1 : 1, 2 : 1, # average\n",
    "                                           3 : 2, 4 : 2 # good\n",
    "                                          },inplace = True)\n",
    "    df[\"SimplGarageCond\"] = df.GarageCond.replace({1 : 1, # bad\n",
    "                                                2 : 1, 3 : 1, # average\n",
    "                                                4 : 2, 5 : 2 # good\n",
    "                                                        },inplace = True)\n",
    "    df[\"SimplGarageQual\"] = df.GarageQual.replace({1 : 1, # bad\n",
    "                                                    2 : 1, 3 : 1, # average\n",
    "                                                    4 : 2, 5 : 2 # good\n",
    "                                                    },inplace = True)\n",
    "    df[\"SimplFireplaceQu\"] = df.FireplaceQu.replace({1 : 1, # bad\n",
    "                                                           2 : 1, 3 : 1, # average\n",
    "                                                           4 : 2, 5 : 2 # good\n",
    "                                                          },inplace = True)\n",
    "    df[\"SimplFireplaceQu\"] = df.FireplaceQu.replace({1 : 1, # bad\n",
    "                                                           2 : 1, 3 : 1, # average\n",
    "                                                           4 : 2, 5 : 2 # good\n",
    "                                                          },inplace = True)\n",
    "    df[\"SimplFunctional\"] = df.Functional.replace({1 : 1, 2 : 1, # bad\n",
    "                                                         3 : 2, 4 : 2, # major\n",
    "                                                         5 : 3, 6 : 3, 7 : 3, # minor\n",
    "                                                         8 : 4 # typical\n",
    "                                                        },inplace = True)\n",
    "    df[\"SimplKitchenQual\"] = df.KitchenQual.replace({1 : 1, # bad\n",
    "                                                           2 : 1, 3 : 1, # average\n",
    "                                                           4 : 2, 5 : 2 # good\n",
    "                                                          },inplace = True)\n",
    "    df[\"SimplHeatingQC\"] = df.HeatingQC.replace({1 : 1, # bad\n",
    "                                                       2 : 1, 3 : 1, # average\n",
    "                                                       4 : 2, 5 : 2 # good\n",
    "                                                      },inplace = True)\n",
    "    df[\"SimplBsmtFinType1\"] = df.BsmtFinType1.replace({1 : 1, # unfinished\n",
    "                                                             2 : 1, 3 : 1, # rec room\n",
    "                                                             4 : 2, 5 : 2, 6 : 2 # living quarters\n",
    "                                                            },inplace = True)\n",
    "    df[\"SimplBsmtFinType2\"] = df.BsmtFinType2.replace({1 : 1, # unfinished\n",
    "                                                             2 : 1, 3 : 1, # rec room\n",
    "                                                             4 : 2, 5 : 2, 6 : 2 # living quarters\n",
    "                                                            },inplace = True)\n",
    "    df[\"SimplBsmtCond\"] = df.BsmtCond.replace({1 : 1, # bad\n",
    "                                                     2 : 1, 3 : 1, # average\n",
    "                                                     4 : 2, 5 : 2 # good\n",
    "                                                    },inplace = True)\n",
    "    df[\"SimplBsmtQual\"] = df.BsmtQual.replace({1 : 1, # bad\n",
    "                                                     2 : 1, 3 : 1, # average\n",
    "                                                     4 : 2, 5 : 2 # good\n",
    "                                                    },inplace = True)\n",
    "    df[\"SimplExterCond\"] = df.ExterCond.replace({1 : 1, # bad\n",
    "                                                       2 : 1, 3 : 1, # average\n",
    "                                                       4 : 2, 5 : 2 # good\n",
    "                                                      },inplace = True)\n",
    "    df[\"SimplExterQual\"] = df.ExterQual.replace({1 : 1, # bad\n",
    "                                                       2 : 1, 3 : 1, # average\n",
    "                                                       4 : 2, 5 : 2 # good\n",
    "                                                      },inplace = True)\n",
    "    return df\n",
    "\n",
    "train = simplify(train)\n",
    "test = simplify(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [],
   "source": [
    "#特征合并（2）\n",
    "def Combine(df):\n",
    "    # Overall quality of the house\n",
    "    df[\"OverallGrade\"] = df[\"OverallQual\"] * df[\"OverallCond\"]\n",
    "    # Overall quality of the garage\n",
    "    df[\"GarageGrade\"] = df[\"GarageQual\"] * df[\"GarageCond\"]\n",
    "    # Overall quality of the exterior\n",
    "    df[\"ExterGrade\"] = df[\"ExterQual\"] * df[\"ExterCond\"]\n",
    "    # Overall kitchen score\n",
    "    df[\"KitchenScore\"] = df[\"KitchenAbvGr\"] * df[\"KitchenQual\"]\n",
    "    # Overall fireplace score\n",
    "    df[\"FireplaceScore\"] = df[\"Fireplaces\"] * df[\"FireplaceQu\"]\n",
    "    # Overall garage score\n",
    "    df[\"GarageScore\"] = df[\"GarageArea\"] * df[\"GarageQual\"]\n",
    "    # Overall pool score\n",
    "    df[\"PoolScore\"] = df[\"PoolArea\"] * df[\"PoolQC\"]\n",
    "    # Simplified overall quality of the house\n",
    "    df[\"SimplOverallGrade\"] = df[\"SimplOverallQual\"] * df[\"SimplOverallCond\"]\n",
    "    # Simplified overall quality of the exterior\n",
    "    df[\"SimplExterGrade\"] = df[\"SimplExterQual\"] * df[\"SimplExterCond\"]\n",
    "    # Simplified overall pool score\n",
    "    df[\"SimplPoolScore\"] = df[\"PoolArea\"] * df[\"SimplPoolQC\"]\n",
    "    # Simplified overall garage score\n",
    "    df[\"SimplGarageScore\"] = df[\"GarageArea\"] * df[\"SimplGarageQual\"]\n",
    "    # Simplified overall fireplace score\n",
    "    df[\"SimplFireplaceScore\"] = df[\"Fireplaces\"] * df[\"SimplFireplaceQu\"]\n",
    "    # Simplified overall kitchen score\n",
    "    df[\"SimplKitchenScore\"] = df[\"KitchenAbvGr\"] * df[\"SimplKitchenQual\"]\n",
    "    # Total number of bathrooms\n",
    "    df[\"TotalBath\"] = df[\"BsmtFullBath\"] + (0.5 * df[\"BsmtHalfBath\"]) + \\\n",
    "    df[\"FullBath\"] + (0.5 * df[\"HalfBath\"])\n",
    "    # Total SF for house (incl. basement)\n",
    "    df[\"AllSF\"] = df[\"GrLivArea\"] + df[\"TotalBsmtSF\"]\n",
    "    # Total SF for 1st + 2nd floors\n",
    "    df[\"AllFlrsSF\"] = df[\"1stFlrSF\"] + df[\"2ndFlrSF\"]\n",
    "    # Total SF for porch\n",
    "    df[\"AllPorchSF\"] = df[\"OpenPorchSF\"] + df[\"EnclosedPorch\"] + \\\n",
    "    df[\"3SsnPorch\"] + df[\"ScreenPorch\"]\n",
    "    # Has masonry veneer or not\n",
    "    df[\"HasMasVnr\"] = df.MasVnrType.replace({\"BrkCmn\" : 1, \"BrkFace\" : 1, \"CBlock\" : 1, \n",
    "                                                   \"Stone\" : 1, \"None\" : 0})\n",
    "    # House completed before sale or not\n",
    "    df[\"BoughtOffPlan\"] = df.SaleCondition.replace({\"Abnorml\" : 0, \"Alloca\" : 0, \"AdjLand\" : 0, \n",
    "                                                          \"Family\" : 0, \"Normal\" : 0, \"Partial\" : 1})\n",
    "    \n",
    "    return df\n",
    "\n",
    "#对训练集和测试集分别进行编码\n",
    "train = Combine(train)\n",
    "test = Combine(test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Numerical features : 115\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1460 entries, 0 to 1459\n",
      "Columns: 163 entries, Id to OverallQual_s3_sq\n",
      "dtypes: float64(27), int64(89), object(47)\n",
      "memory usage: 1.8+ MB\n",
      "NAs for numerical features in df : 0\n",
      "Remaining NAs for numerical features in df : 0\n"
     ]
    }
   ],
   "source": [
    "#对训练集的其他数值型特征进行空缺值填补（中值填补）\n",
    "#返回填补后的dataframe，以及每列的中值，用于填补测试集的空缺值\n",
    "# 数值型特征还要进行数据标准化\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "def fillna_numerical_train(df):\n",
    "    numerical_features = df.select_dtypes(exclude = [\"object\"]).columns\n",
    "    \n",
    "    numerical_features = numerical_features.drop(\"SalePrice\")\n",
    "    print(\"Numerical features : \" + str(len(numerical_features)))\n",
    "\n",
    "    df.info()\n",
    "    df_num = df[numerical_features]\n",
    "    #df_num.info()\n",
    "    \n",
    "    medians = df_num.median() \n",
    "    # Handle remaining missing values for numerical features by using median as replacement\n",
    "    print(\"NAs for numerical features in df : \" + str(df_num.isnull().values.sum()))\n",
    "    df_num = df_num.fillna(medians)\n",
    "    print(\"Remaining NAs for numerical features in df : \" + str(df_num.isnull().values.sum()))\n",
    "\n",
    "    #df_num.info()\n",
    "    # 分别初始化对特征和目标值的标准化器\n",
    "    ss_X = StandardScaler()\n",
    "\n",
    "    # 对训练特征进行标准化处理\n",
    "    temp = ss_X.fit_transform(df_num)\n",
    "    df_num = pd.DataFrame(data=temp, columns=numerical_features, index =df_num.index)\n",
    "    \n",
    "    return df_num, medians, ss_X\n",
    "\n",
    "train_num, medians, ss_X = fillna_numerical_train(train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1460 entries, 0 to 1459\n",
      "Columns: 115 entries, Id to OverallQual_s3_sq\n",
      "dtypes: float64(115)\n",
      "memory usage: 1.3 MB\n"
     ]
    }
   ],
   "source": [
    "train_num.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Numerical features : 115\n",
      "NAs for numerical features in df : 13\n",
      "Remaining NAs for numerical features in df : 0\n"
     ]
    }
   ],
   "source": [
    "#对测试集的其他数值型特征进行空缺值填补（用训练集中相应列的中值填补）\n",
    "def fillna_numerical_test(df, medians, ss_X):\n",
    "    numerical_features = df.select_dtypes(exclude = [\"object\"]).columns\n",
    "    #numerical_features = numerical_features.drop(\"SalePrice\")  #测试集中没有SalePrice\n",
    "    print(\"Numerical features : \" + str(len(numerical_features)))\n",
    "\n",
    "    df_num = df[numerical_features]\n",
    "    \n",
    "    # Handle remaining missing values for numerical features by using median as replacement\n",
    "    print(\"NAs for numerical features in df : \" + str(df_num.isnull().values.sum()))\n",
    "    df_num = df_num.fillna(medians)\n",
    "    print(\"Remaining NAs for numerical features in df : \" + str(df_num.isnull().values.sum()))\n",
    "\n",
    "    #对数值特征进行标准化\n",
    "    temp = ss_X.transform(df_num)\n",
    "    df_num = pd.DataFrame(data=temp, columns=numerical_features, index =df_num.index )\n",
    "    return df_num\n",
    "\n",
    "test_num = fillna_numerical_test(test, medians, ss_X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Categorical features : 47\n",
      "NAs for categorical features in df : 61307\n",
      "Remaining NAs for categorical features in df : 0\n"
     ]
    }
   ],
   "source": [
    "def get_dummies_cat(df):\n",
    "    categorical_features = df.select_dtypes(include = [\"object\"]).columns\n",
    "    print(\"Categorical features : \" + str(len(categorical_features)))\n",
    "    df_cat = df[categorical_features]\n",
    "    \n",
    "\n",
    "    # Create dummy features for categorical values via one-hot encoding\n",
    "    print(\"NAs for categorical features in df : \" + str(df_cat.isnull().values.sum()))\n",
    "    df_cat = pd.get_dummies(df_cat,dummy_na=True)\n",
    "    print(\"Remaining NAs for categorical features in df : \" + str(df_cat.isnull().values.sum()))\n",
    "    \n",
    "    return df_cat\n",
    "\n",
    "#必须考虑类别型特征的取值范围（训练集和测试的取值范围可能不同）\n",
    "#train_cat = get_dummies_cat(train)\n",
    "#test_cat = get_dummies_cat(test)\n",
    "\n",
    "n_train_samples = train.shape[0]  \n",
    "train_test = pd.concat((train, test), axis=0)\n",
    "train_test_cat = get_dummies_cat(train_test)\n",
    "   \n",
    "train_cat = train_test_cat.iloc[:n_train_samples, :]\n",
    "test_cat = train_test_cat.iloc[n_train_samples:, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 1460 entries, 0 to 1459\n",
      "Columns: 352 entries, BldgType_1Fam to SimplPoolScore_nan\n",
      "dtypes: uint8(352)\n",
      "memory usage: 513.3 KB\n"
     ]
    }
   ],
   "source": [
    "train_cat.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [],
   "source": [
    "#分离建模的特征变量和目标变量\n",
    "data = train.select_dtypes(include=[np.number]).interpolate().dropna()\n",
    "sum(data.isnull().sum() != 0)\n",
    "y = np.log(train.SalePrice)\n",
    "X = data.drop(['SalePrice', 'Id'], axis=1)\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "                                    X, y, random_state=42, test_size=.33)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 算法选择预测结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用线性回归模型对房价进行预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "权重向量:[  1.99191791e-04   1.48380916e-06   1.93947111e-01   1.06733964e-02\n",
      "  -1.95763599e-02   5.26006622e-02  -1.48387005e-02   2.06694082e-04\n",
      "   1.01546315e-01   2.10378123e-03   1.19809130e-03   9.44363120e-05\n",
      "  -1.19302611e-01  -6.62022897e-02   2.06506429e-02  -1.90083179e-03\n",
      "   1.43304350e-02   5.83384301e-03  -6.92100353e-03  -3.93662769e-03\n",
      "  -6.98825497e-03  -7.01977212e-03  -2.09290536e-02   2.47265359e-02\n",
      "   1.23261819e-02   2.33619813e-02  -1.42288995e-02   2.14592334e-02\n",
      "  -3.09896208e-01  -1.63120351e-01  -3.08408513e-01  -1.32704377e-01\n",
      "  -1.13776281e-02  -1.26898044e-01   3.93739598e-02   9.69519214e-03\n",
      "   7.79002471e-02   1.90586793e-02   1.43688582e-02  -3.50466667e-01\n",
      "  -8.30383826e-03   8.12150508e-03  -9.41208508e-02   2.18657690e-02\n",
      "   4.66654962e-05  -1.07636070e-04   2.09607394e-05   2.04091182e-05\n",
      "   1.80388014e-04  -8.39148784e-04  -7.50451105e-01  -3.21823872e-06\n",
      "   4.73574169e-03   1.55348967e-03   6.65102726e-02   3.07358633e-02\n",
      "  -1.82267083e-02   1.90586792e-02  -7.76294555e-05   1.60194428e-03\n",
      "  -7.66217083e-01   5.30159078e-04   3.56881598e-02   1.14122475e-04\n",
      "  -2.39994545e-02   8.33699690e-02  -2.37619995e-06   4.56880870e-11\n",
      "   1.62285301e+00   2.08531037e-05  -8.65157668e-10  -3.66775384e+00\n",
      "   5.66531975e-06  -6.72047834e-11  -2.76577721e+00   9.68019388e-05\n",
      "   2.19229313e-04   1.37029800e-05   4.36422882e-02   3.26428860e-01\n",
      "  -5.16672395e-01   1.16793280e-01  -5.72658802e-03   1.90545270e+00\n",
      "   5.94488463e-06  -2.10414665e-09   1.81749832e-01   5.41699173e-03\n",
      "   1.26396473e-02   7.47930484e-04  -2.05832129e-07   5.23775467e-11\n",
      "  -1.73339323e-02   2.51427814e-06  -3.18537446e-10   4.37730781e-01\n",
      "   5.30178525e-04   3.72769760e-04  -7.90922016e+00   3.56881513e-02\n",
      "  -2.24563734e-03   1.17054710e+01   2.14592602e-02  -8.65736302e-04\n",
      "   1.19071653e+01  -1.06998839e-01   2.14672458e-03  -3.50466667e-01\n",
      "   4.47780661e-04   1.52563927e-03   3.28711685e-05   1.52563927e-03\n",
      "  -1.03748963e-04   5.96141572e-05], b的值为:-23.07\n",
      "损失函数的值: 0.02\n",
      "预测性能得分: 0.86\n"
     ]
    }
   ],
   "source": [
    "def test_LinearRegression(*data):\n",
    "    X_train, X_test, y_train, y_test,train,test= data\n",
    "    #通过sklearn的linear_model创建线性回归对象\n",
    "    linearRegression = linear_model.LinearRegression()\n",
    "    #进行训练\n",
    "    linearRegression.fit(X_train, y_train)\n",
    "    #通过LinearRegression的coef_属性获得权重向量,intercept_获得b的值\n",
    "    print(\"权重向量:%s, b的值为:%.2f\" % (linearRegression.coef_, linearRegression.intercept_))\n",
    "    #计算出损失函数的值\n",
    "    print(\"损失函数的值: %.2f\" % np.mean((linearRegression.predict(X_test) - y_test) ** 2))\n",
    "    #计算预测性能得分\n",
    "    print(\"预测性能得分: %.2f\" % linearRegression.score(X_test, y_test))\n",
    "    ##生成预测\n",
    "    submission = pd.DataFrame()\n",
    "    submission['Id'] = test.Id\n",
    "    #根据上面所做的模型，从测试数据中选择特性\n",
    "    feats = test.select_dtypes(\n",
    "            include=[np.number]).drop(['Id'], axis=1).interpolate()\n",
    "    #生成预测\n",
    "    predictions = linearRegression.predict(feats)\n",
    "    #预测转换成正确的形式，用np.exp()来做预测，因为之前已经取了对数。\n",
    "    final_predictions = np.exp(predictions)\n",
    "    submission['SalePrice'] = final_predictions\n",
    "    #创建预测\n",
    "    submission.to_csv('LinearRegressionPredictions.csv', index=False)\n",
    "    \n",
    "test_LinearRegression(X_train, X_test, y_train, y_test,train,test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用岭回归模型对房价进行预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "权重向量:[  1.81615095e-04   1.43936658e-06   1.39488934e-01   1.03644108e-02\n",
      "  -1.89281841e-02   4.10414871e-02  -1.37635072e-02   2.84046738e-05\n",
      "   9.17004251e-02   2.13489415e-03   1.19640044e-03   1.00303506e-04\n",
      "  -1.49294609e-04  -5.92207416e-02   2.36349709e-02  -2.98730124e-03\n",
      "   1.52092167e-02   5.78697039e-03   6.08978792e-05  -7.57943971e-03\n",
      "  -1.11649954e-05  -3.38231661e-05   1.59102144e-05   2.65326346e-02\n",
      "  -5.98128811e-04   3.75395531e-03  -1.87434745e-03   1.28147655e-03\n",
      "   1.26452901e-02  -3.67811676e-03   1.38276308e-02   2.85633208e-02\n",
      "  -1.02017393e-02  -1.11975342e-01   4.77827278e-02   1.05846413e-02\n",
      "   7.97435480e-02   2.02094840e-02   1.25153097e-02  -3.74147401e-03\n",
      "  -2.11219946e-03   1.35077641e-02  -3.47942364e-02   2.01187980e-02\n",
      "   5.22421031e-05  -1.05998548e-04  -2.27713821e-06   3.41271840e-05\n",
      "   1.84179974e-04  -1.19830152e-03  -1.02619945e-01  -1.05655972e-05\n",
      "   5.31911904e-03   8.13317757e-03   4.47068680e-02   2.60320087e-02\n",
      "  -2.95427130e-02   2.02094840e-02  -4.37369857e-05   7.92554086e-04\n",
      "   3.89155230e-02   1.29739301e-03   3.15582746e-03   1.10031475e-04\n",
      "  -2.87327433e-02   8.24359466e-02   2.14393444e-07  -1.37995908e-11\n",
      "  -5.98895119e-02   6.54882082e-06  -4.20653406e-10  -7.87405192e-02\n",
      "  -2.12710506e-06   2.18365716e-10  -7.41929666e-02   8.36486435e-05\n",
      "   1.89440515e-04   1.18410317e-05   4.28154725e-03   9.17261930e-03\n",
      "  -7.21676265e-03  -2.48452727e-02   3.82378655e-03   3.21038494e-02\n",
      "   2.01388949e-06  -7.58507988e-10   3.48312214e-02  -4.47883827e-04\n",
      "  -1.04506226e-03  -6.18398517e-05  -3.41915521e-07   9.02124113e-11\n",
      "  -1.83420505e-02   9.29289181e-07  -1.12876891e-10   1.80300835e-01\n",
      "   1.29739267e-03  -2.58603783e-05  -1.15757891e-02   3.15582593e-03\n",
      "  -4.75817798e-04  -1.52863830e-02   1.28147899e-03   7.74451700e-05\n",
      "  -1.43809057e-02  -2.83273528e-03   5.66667402e-05  -3.74147401e-03\n",
      "   3.86936187e-04   1.31832055e-03   2.84046734e-05   1.31832060e-03\n",
      "  -9.00142855e-05   5.15137719e-05], b的值为:-8.26\n",
      "损失函数的值:0.02\n",
      "预测性能得分: 0.86\n"
     ]
    }
   ],
   "source": [
    "def test_ridge(*data):\n",
    "    X_train, X_test, y_train, y_test,train,test= data\n",
    "    ridgeRegression = linear_model.Ridge()\n",
    "    ridgeRegression.fit(X_train, y_train)\n",
    "    print(\"权重向量:%s, b的值为:%.2f\" % (ridgeRegression.coef_, ridgeRegression.intercept_))\n",
    "    print(\"损失函数的值:%.2f\" % np.mean((ridgeRegression.predict(X_test) - y_test) ** 2))\n",
    "    print(\"预测性能得分: %.2f\" % ridgeRegression.score(X_test, y_test))\n",
    "    ##生成预测\n",
    "    submission = pd.DataFrame()\n",
    "    submission['Id'] = test.Id\n",
    "    #根据上面所做的模型，从测试数据中选择特性\n",
    "    feats = test.select_dtypes(\n",
    "            include=[np.number]).drop(['Id'], axis=1).interpolate()\n",
    "    #生成预测\n",
    "    predictions = ridgeRegression.predict(feats)\n",
    "    #预测转换成正确的形式，用np.exp()来做预测，因为之前已经取了对数。\n",
    "    final_predictions = np.exp(predictions)\n",
    "    submission['SalePrice'] = final_predictions\n",
    "    #创建预测\n",
    "    submission.to_csv('RidgeRegressionPredictions.csv', index=False)\n",
    "    \n",
    "test_ridge(X_train, X_test, y_train, y_test,train,test)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm4AAAGLCAYAAAB+yR6/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3X98zfX///H782wYZmvO2GJEKwm9\nMXvLVjQsVLyTUlIkvftFP7/95K13P955885bv6TeeidFFCVUSrX0QyhKKqnwTmUZs60+ZkOb1/P7\nx9GysLOxndc5O7fr5dIl5+x1nPt5XE7ce75+GWutFQAAAIKex+0AAAAAqByKGwAAQIiguAEAAIQI\nihsAAECIoLgBAACECIobAABAiKC4AQh7I0aMUGZmZoXbPPPMM4qMjAxQIgA4NIobgFptxIgRMsbI\nGKOIiAglJSVp+PDh+umnn8q2eeSRR/Tiiy+6mBIAKofiBqDW6969u3JycvTjjz9qzpw5+uyzzzR4\n8OCyn8fGxiouLs7FhABQORQ3ALVe3bp1lZiYqObNm6tHjx666qqrtHLlSu3cuVPSwbtKrbW66667\n1LRpU0VHR2vIkCH6+eefD/p9H374YSUlJalBgwbq27evZs2aJWOMsrOzy7b59NNP1adPH0VHR6tJ\nkyYaNGiQfvjhh5r/0ABqJYobgLCydetWvfTSS4qIiFBERMQht3n00Uf14IMPatKkSVqzZo1SUlJ0\n7733ltvm5Zdf1q233qrbbrtNn3/+uS6++GLdcccd5bZZv369zjjjDKWlpemTTz7R0qVLFRERoTPP\nPFN79uypsc8IoPbiSFsAtd57772n6OhoOY6j3bt3S5JuueUWNWzY8JDbT5o0STfddJMuu+wySdLt\nt9+uVatWaeHChWXbTJ48WRdffLFuvPFGSdKJJ56ob775Rv/617/KtnnggQfUv3//cqXvueeeU1xc\nnJYsWaKBAwdW+2cFULux4gag1jv11FO1du1arVq1SnfddZe6deumf/zjH4fcdufOnfrpp5+Unp5e\n7vnTTz+93OP169erW7du5Z5LS0sr93j16tVasGCBoqOjy/7xer3as2ePNm7cWA2fDEC4YcUNQK1X\nv359nXDCCZKkDh06aMOGDRo9erSefvrpg7a11kqSjDF+f19/2ziOo2HDhunOO+886Gder7cy0QGg\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111ccf1eb70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def test_ridge_alpha(*data):\n",
    "    X_train, X_test, y_train, y_test,train,test = data\n",
    "    alphas = [0.01,0.1,1,10,100,1000,10000,100000]\n",
    "    scores = []\n",
    "    for i, alpha in enumerate(alphas):\n",
    "        ridgeRegression = linear_model.Ridge(alpha=alpha)\n",
    "        ridgeRegression.fit(X_train, y_train)\n",
    "        scores.append(ridgeRegression.score(X_test, y_test))\n",
    "    return alphas, scores\n",
    "\n",
    "def show_plot(alphas, scores):\n",
    "    figure = plt.figure()\n",
    "    ax = figure.add_subplot(1, 1, 1)\n",
    "    ax.plot(alphas, scores)\n",
    "    ax.set_xlabel(r\"$\\alpha$\")\n",
    "    ax.set_ylabel(r\"score\")\n",
    "    ax.set_xscale(\"log\")\n",
    "    ax.set_title(\"Ridge\")\n",
    "    plt.show()\n",
    "    \n",
    "alphas, scores = test_ridge_alpha(X_train, X_test, y_train, y_test,train,test)\n",
    "show_plot(alphas, scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用Lasso回归模型对房价进行预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "权重向量:[  0.00000000e+00   2.12429022e-06   0.00000000e+00  -0.00000000e+00\n",
      "  -0.00000000e+00  -0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   1.20676263e-03   2.63492762e-04   3.81310810e-05\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   1.12283794e-04   0.00000000e+00\n",
      "   0.00000000e+00  -1.88772004e-05   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00  -0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "  -0.00000000e+00  -0.00000000e+00   0.00000000e+00  -0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   1.70645134e-05   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   9.79173827e-05   0.00000000e+00  -0.00000000e+00   0.00000000e+00\n",
      "   3.20131372e-05  -0.00000000e+00  -0.00000000e+00  -1.53630284e-05\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   1.60223877e-04   0.00000000e+00\n",
      "   0.00000000e+00   1.29308156e-04   0.00000000e+00   1.06921824e-05\n",
      "   0.00000000e+00   0.00000000e+00  -5.16908524e-08  -3.49033270e-12\n",
      "   0.00000000e+00   1.42533610e-07  -3.17042721e-11   0.00000000e+00\n",
      "   7.84188182e-08   6.20482271e-12   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   3.41237953e-07  -2.55152139e-10   0.00000000e+00   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   2.69754859e-08   2.37206995e-11\n",
      "   0.00000000e+00   2.53098128e-09  -8.65599466e-12   0.00000000e+00\n",
      "   3.74835584e-05   3.31656287e-06   0.00000000e+00   0.00000000e+00\n",
      "   8.78851203e-07   0.00000000e+00   0.00000000e+00  -5.05569412e-06\n",
      "   0.00000000e+00   0.00000000e+00   2.24030135e-05   0.00000000e+00\n",
      "   0.00000000e+00   0.00000000e+00   0.00000000e+00   0.00000000e+00\n",
      "   9.89162913e-06   0.00000000e+00], b的值为:8.16\n",
      "损失函数的值:0.03\n",
      "预测性能得分: 0.81\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n"
     ]
    }
   ],
   "source": [
    "def test_lasso(*data):\n",
    "    X_train, X_test, y_train, y_test,train,test = data\n",
    "    lassoRegression = linear_model.Lasso()\n",
    "    lassoRegression.fit(X_train, y_train)\n",
    "    print(\"权重向量:%s, b的值为:%.2f\" % (lassoRegression.coef_, lassoRegression.intercept_))\n",
    "    print(\"损失函数的值:%.2f\" % np.mean((lassoRegression.predict(X_test) - y_test) ** 2))\n",
    "    print(\"预测性能得分: %.2f\" % lassoRegression.score(X_test, y_test))\n",
    "    ##生成预测\n",
    "    submission = pd.DataFrame()\n",
    "    submission['Id'] = test.Id\n",
    "    #根据上面所做的模型，从测试数据中选择特性\n",
    "    feats = test.select_dtypes(\n",
    "            include=[np.number]).drop(['Id'], axis=1).interpolate()\n",
    "    #生成预测\n",
    "    predictions = lassoRegression.predict(feats)\n",
    "    #预测转换成正确的形式，用np.exp()来做预测，因为之前已经取了对数。\n",
    "    final_predictions = np.exp(predictions)\n",
    "    submission['SalePrice'] = final_predictions\n",
    "    #创建预测\n",
    "    submission.to_csv('LassoRegressionPredictions.csv', index=False)\n",
    "    \n",
    "test_lasso(X_train, X_test, y_train, y_test,train,test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nOEcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111ccea24e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#测试不同的α值对预测性能的影响\n",
    "def test_lasso_alpha(*data):\n",
    "    \n",
    "    X_train, X_test, y_train, y_test,train,test = data\n",
    "    alphas = [0.01,0.1,1,10,100,1000,10000,100000]\n",
    "    scores = []\n",
    "    for i, alpha in enumerate(alphas):\n",
    "        lassoRegression = linear_model.Lasso(alpha=alpha)\n",
    "        lassoRegression.fit(X_train, y_train)\n",
    "        scores.append(lassoRegression.score(X_test, y_test))\n",
    "    return alphas, scores\n",
    "\n",
    "def show_plot(alphas, scores):\n",
    "    figure = plt.figure()\n",
    "    ax = figure.add_subplot(1, 1, 1)\n",
    "    ax.plot(alphas, scores)\n",
    "    ax.set_xlabel(r\"$\\alpha$\")\n",
    "    ax.set_ylabel(r\"score\")\n",
    "    ax.set_xscale(\"log\")\n",
    "    ax.set_title(\"Ridge\")\n",
    "    plt.show()\n",
    "    \n",
    "alphas, scores = test_lasso_alpha(X_train, X_test, y_train, y_test,train,test)\n",
    "show_plot(alphas, scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
